2017-07-14 102 views
0

我們需要在頁面上打印一個pdf文檔,該頁面上有預定義的字段,基本上是一個公式,需要填寫哪些字段。在帶有預編義佈局的紙張上打印pdf文檔

我們使用iTextSharp來創建pdf,我們使用absoulte定位基於表單字段定位的元素。例如,如果場地從左邊開始20毫米,從頂部開始20毫米,我會將數據從左邊開始21毫米,從頂部開始21毫米,以便適合該領域。它在我的打印機上運行良好。

但我的問題是,不同的打印機由於不同的頁邊距,字體大小等原因可能會弄亂定位......也許它會是相同的,我不知道不同的打印機會帶來什麼差異。

打印pdf時,用戶選擇Actual size選項是否重要?

我需要知道我可以期待什麼樣的困難,現在更好地瞭解它,然後等待客戶在生產時發出呼叫。

回答

1

您預期的問題存在。這可以通過設置觀看者偏好來避免。

How to prevent the resizing of pages in PDF?

你要打印縮放比例設置爲none:

writer.addViewerPreference(PdfName.PRINTSCALING, PdfName.NONE); 

那是,如果你正在使用的iText 5則需要行(writerPdfWriter一個實例)。如果您使用的iText 7,你可以定義觀衆的喜好是這樣的:

PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); 
PdfViewerPreferences preferences = new PdfViewerPreferences(); 
preferences.setPrintScaling(PdfViewerPreferencesConstants.NONE); 
pdf.getCatalog().setViewerPreferences(preferences); 

Handling events; setting viewer preferences and printer properties

當然,最終用戶總是可以在PDF閱讀器中否決打印縮放,但這是他們的責任,而不是你的責任。