1
在您提問之前,我已閱讀過另一篇SO文章,以及由iText的創建者Bruno Lowagie撰寫的關於如何執行此操作的文章。事實仍然是,我無法實現它的工作。通過eclipse跟蹤執行,使其看起來像它的工作,但沒有實際使用此代碼複製書籤。未被複制的書籤
我可能失去了一些東西真的很愚蠢,並要求有人點我的正確方法:
void resize (String pdfIn, String pdfOut, float x, float y, float scale) {
PdfReader reader = new PdfReader(pdfIn);
List <HashMap <String, Object>> bookmarks = SimpleBookmark.getBookmark (reader) ;
// landscape letter:
Document doc = new Document(new RectangleReadOnly(792, 612), 0, 0, 0, 0);
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(pdfOut));
doc.open();
PdfContentByte cb = writer.getDirectContent();
for(int i=1; i<=reader.getNumberOfPages(); i++){
doc.newPage();
PdfImportedPage page = writer.getImportedPage(reader, i);
// page rescaling, mandatory:
cb.addTemplate(page, scale, 0, 0, scale, x, y);
}
writer.setOutlines (bookmarks) ;
doc.close();
任何線索?
謝謝,但是這並沒有做到這一點。 doc對象屬於作者,而不是讀者。但我無論如何都無濟於事。 – billmill
但是,您先打開文檔以閱讀內容,那麼請查看您在哪裏打開文檔以供閱讀 – Aarav
您打開文檔以供書寫,而不是閱讀。我檢查了你的建議解決方案,以防萬一,但它沒有奏效。 – billmill