书签未被复制

时间:2014-01-14 15:27:46

标签: java pdf pdf-generation itext bookmarks

在您提出之前,是的,我已经阅读了另一篇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();

任何线索?

1 个答案:

答案 0 :(得分:1)

我对此并不十分确定,但

写下这一行

List <HashMap <String, Object>> bookmarks = SimpleBookmark.getBookmark ( reader ) ;

之后

doc.open();