0
我想更改我的pdf中每個頁面的mediabox條目。如何使用iText設置MediaBox值
https://i.imgur.com/mSqoIch.png
有沒有辦法做到這一點與iText的,這樣下面的值將用於
mediaBox[0] = 0
mediaBox[1] = 0
mediaBox[2] = 595.22
mediaBox[0] = 842
我想更改我的pdf中每個頁面的mediabox條目。如何使用iText設置MediaBox值
https://i.imgur.com/mSqoIch.png
有沒有辦法做到這一點與iText的,這樣下面的值將用於
mediaBox[0] = 0
mediaBox[1] = 0
mediaBox[2] = 595.22
mediaBox[0] = 842
可以通過設置mediaboxes這樣
File outputPdf = File.createTempFile("moveMediabox", ".pdf");
PdfReader reader = new PdfReader(ByteSource.wrap(inputPdfBytes).openBufferedStream());
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPdf));
int numberOfPages = reader.getNumberOfPages();
for (int i = 1; i <= numberOfPages; i++) {
PdfDictionary pagedict = reader.getPageN(i);
PdfArray mediabox = pagedict.getAsArray(PdfName.MEDIABOX);
int x = mediabox.getAsNumber(0).intValue();
int y = mediabox.getAsNumber(1).intValue();
if (x != 0 && y != 0){
isChanged = true;
mediabox.set(0, new PdfNumber(0));
mediabox.set(1, new PdfNumber(0));
mediabox.set(2, new PdfNumber(mediabox.getAsNumber(2).intValue() - x));
mediabox.set(3, new PdfNumber(mediabox.getAsNumber(3).intValue() - y));
}
else{
LOG.info("no need to repair media box, already at x:0 y:0");
}
}
iText的解決這個問題5或iText 7?您是從頭開始創建文檔,還是要更改現有文檔中的MediaBox? (請注意,如果您更改現有文檔的媒體框,則現有內容不會重排,如果您不小心,可以輕鬆剪輯現有內容。) –