-1
嗨我們有一個需要將現有的A4尺寸的PDF轉換爲Java中的A3尺寸PDF。由於我是itext api conversion pdfs的新手,任何人都可以指導我如何在java中使用itext或任何其他API來完成。如果樣品參考提供了可觀的。如何將現有的A4 PDF文檔轉換爲A3小冊子?
UPDATe:輸出PDF格式應爲A3小冊子格式。
嗨我們有一個需要將現有的A4尺寸的PDF轉換爲Java中的A3尺寸PDF。由於我是itext api conversion pdfs的新手,任何人都可以指導我如何在java中使用itext或任何其他API來完成。如果樣品參考提供了可觀的。如何將現有的A4 PDF文檔轉換爲A3小冊子?
UPDATe:輸出PDF格式應爲A3小冊子格式。
請看看的例子。 在這個例子中,我們採取與299頁A4紙(primes.pdf)現有的PDF文件,我們將其轉換爲一個150頁的A3小冊子(a3_booklet.pdf):
public void manipulatePdf(String src, String dest)
throws IOException, DocumentException {
// Creating a reader
PdfReader reader = new PdfReader(src);
// step 1
Document document = new Document(PageSize.A3.rotate());
// step 2
PdfWriter writer
= PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte canvas = writer.getDirectContent();
float a4_width = PageSize.A4.getWidth();
int n = reader.getNumberOfPages();
int p = 0;
PdfImportedPage page;
while (p++ < n) {
page = writer.getImportedPage(reader, p);
if (p % 2 == 1) {
canvas.addTemplate(page, 0, 0);
}
else {
canvas.addTemplate(page, a4_width, 0);
document.newPage();
}
}
// step 5
document.close();
reader.close();
}
我們創建PageSize.A3
作爲參數Document
對象,但由於PageSize.A3
是縱向的,我們旋轉它,以便我們獲得橫向的頁面大小。我們需要A4頁面的寬度(這是橫向格式的A3頁面寬度的一半),並且我們遍歷現有文檔中的所有頁面。
如果我們遇到一個奇怪的頁面,我們將它添加到位置(x = 0; y = 0)
。如果我們遇到偶數頁面,我們將它添加到位置(x = a4_width; y = 0)
,我們創建一個新頁面。
你可以使用ghostscript,並通過一個命令調用Java –
謝謝。我需要批量生成pdf,我不能使用命令行。任何替代品在那裏? – Raj
請編輯該問題以闡明「將A4轉換爲A3」的含義。您是否想要縮放內容,以便A3頁面看起來與A4頁面相同?您是否想要保留內容大小,在A3頁面上添加空白區域?你想在1 A3頁面上放2頁A4頁面嗎? – rhens