2013-07-26 60 views
0

我有這樣的問題:PDF - 媒體框或裁剪框

PDF rendering using CGContextDrawPDFPage : cannot find CropBox

,但這個問題實際上並沒有回答。 回顧:我無法顯示一個特定的pdf文件,裁剪標記可見,但不在另一個閱讀器的Safari上。我試圖在渲染中使用kCGPDFCropBox而不是kCGPDFMediaBox,但生成的rects具有相同的值。同樣的結果與kCGPDFTrimBox,例如:

CGRect pageRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox); 

UPDATE:

origin=(x=0, y=0) size=(width=595, height=842) 

爲pageRect與kCGPDFMediaBox

origin=(x=42.9783, y=61.4606) size=(width=511.299, height=719.97) 

爲pageRect與kCGPDFCropBox

使用第二個,頁面是裁剪,但不是我如何(留下印刷和裁剪標記以及裁剪內容)。其他觀衆仍可以使用此文件正常工作

+1

請提供相關PDF以供檢查。 – mkl

+0

它受版權保護,我可以爲您提供一些信息嗎? – laucel

+1

你有沒有一些不加批判的PDF你也有這個問題?所需的信息是a)哪些方框在相關頁面的PDF字典中定義,以及b)定義這些裁剪標記的位置和方式。 – mkl

回答

2

這些標記繪製在可見頁面區域(裁剪框)的外部。由於您不剪輯頁邊界處的內容,因此會顯示頁面內容中的所有內容。 在繪製頁面之前添加此項,裁剪標記將不再可見。

CGContextAddRect(ctx, cropBoxRect); 
CGContextClip(ctx); 

如果仍不能正常顯示,請在發佈評論爲/媒體框,/裁剪框和/旋轉的條目,我將建立一個測試PDF文件中的值覆蓋。

+0

我怎樣才能獲得/ MediaBox,/ CropBox和/旋轉條目?謝謝 – laucel

+1

CGPDFPageGetBoxRect方法適用於媒體框和裁切框以及CGPDFPageGetRotationAngle旋轉。 – iPDFdev

+0

對不起,我認爲你需要別的東西,在這裏它們是封面頁的值,它仍然無法正確顯示:MediaBox:origin =(x = 596.126,y = 42.5197)size =(width = 481.894,height = 680.315); CropBox:origin =(x = 596.126,y = 42.5197)size =(width = 481.894,height = 680.315);旋轉:0 – laucel