2013-12-17 166 views
0

有沒有一種方法可以微調PDF格式在IText頁面上打印的確切位置?IText如何調整頁面上的pdf

這是我的問題:它似乎很自然地通過打印機制造商的變化或打印機的使用年限等等,打印PDF文檔時會發生微小的變化。這些變化通常非常小,但是對於2臺樣本打印機(包括激光和相同的型號和製造商),文本位置的變化在打印機之間爲1-2毫米。對於大多數普通印刷來說,這是很好的,但對於這個任務來說,這是超出了可接受的公差範圍。

我對此的直覺反應是提供一些能夠對打印發生的位置進行微調的能力,從而能夠解釋打印機本身的任何變化。但是,對於發送到單個打印機的所有作業,打印似乎是一致的。

目前我在Adobe Acrobat Pro X中創建了一個PDF表單域,然後由java應用程序填寫併發送到打印機。

謝謝你的任何和所有的建議

回答

2

我首先要解決這個問題是嘗試改變打印機驅動程序的默認設置......莫名其妙的嘗試。但我無法給出任何有用的指示。

如果你想調整PDF文件,你應該改變頁面邊界來移動內容。例如,此代碼將第一個頁面的內容向下移動50個單位,以獲得僅包含MediaBox的簡單PDF。

PdfReader reader = new PdfReader("in.pdf"); 
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("out.pdf")); 
PdfDictionary pagedict = reader.getPageN(1); 
PdfArray mediabox = pagedict.getAsArray(PdfName.MEDIABOX); 
mediabox.set(1, new PdfNumber(mediabox.getAsNumber(1).intValue()+50)); 
mediabox.set(3, new PdfNumber(mediabox.getAsNumber(3).intValue()+50)); 
stamper.close(); 

您必須相應地調整任何其他框(CropBox,BleedBox等)。查看PDF規範以獲取有關不同頁面邊界的信息。

相關問題