使用iText Java向PDF目录添加新条目

使用iText Java向PDF目录添加新条目,java,dictionary,pdf,itext,catalog,Java,Dictionary,Pdf,Itext,Catalog,我正在尝试向新PDF文档中的PDF目录对象添加一个新条目。为此,我使用库iText Java,新条目是一对,其键为“/MyVar”,值为数字。代码毫无问题地结束了执行,并且创建了文件,但是如果我转到目录,则条目不在那里 我当前的代码: package iTextExamples; import java.io.FileNotFoundException; import com.itextpdf.kernel.pdf.*; import com.itextpdf.layout.Document

我正在尝试向新PDF文档中的PDF目录对象添加一个新条目。为此,我使用库iText Java,新条目是一对,其键为“/MyVar”,值为数字。代码毫无问题地结束了执行,并且创建了文件,但是如果我转到目录,则条目不在那里

我当前的代码:

package iTextExamples;

import java.io.FileNotFoundException;

import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;

public class Main {

    public static void main(String[] args) throws FileNotFoundException {
        String path = "C:\\Path\\PDF1.pdf";
        
        PdfWriter pdfWriter = new PdfWriter(path);
        
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        
        pdfDocument.addNewPage();
        
        int dia = 14;
        
        PdfNumber value = new PdfNumber(dia);
        
        PdfObject obj;
        
        obj = value;
        
        PdfName key = new PdfName("/MyVar");
        
        PdfCatalog cat = pdfDocument.getCatalog();
        
        cat.put(key, value);        

        Document document = new Document(pdfDocument);
        
        document.close();
    }

}
如果你知道什么是错的,你也能分享,我会很感激的

代码毫无问题地结束了执行,并且创建了文件,但是如果我转到目录,则条目不在那里

相反,我刚刚测试了您的代码,发现条目就在那里:

10对象
如果您希望使用
/MyVar
而不是
/#2fMyVar
,则应替换

PdfName key=newpdfname(“/MyVar”);

PdfName key=newpdfname(“MyVar”);

由于
PdfName
构造函数不希望PDF名称指示符
/
成为其参数的一部分。

再次感谢!我使用PDF Analyzer检查PDF的内部结构,但没有找到条目。最后,我使用了iText RUPS并找到了它。谢谢你的“/”评论,我不知道。