iText-pdfanotation.createInk
我试图解析XFDF中的注释数据,并使用iText库绘制它。我想画像附加图像一样的注释 下面是我测试PdfAnnotation.createInk函数的代码,但在运行代码后它不起作用 我有谷歌和阅读的文件,但没有太多的信息提供。有什么建议和建议吗?谢谢iText-pdfanotation.createInk,itext,Itext,我试图解析XFDF中的注释数据,并使用iText库绘制它。我想画像附加图像一样的注释 下面是我测试PdfAnnotation.createInk函数的代码,但在运行代码后它不起作用 我有谷歌和阅读的文件,但没有太多的信息提供。有什么建议和建议吗?谢谢 // step 1 Document document = new Document(PageSize.A4); // step 2 PdfWriter writer = PdfWriter.getInstance(docu
// step 1
Document document = new Document(PageSize.A4);
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(destFile));
// step 3
document.open();
PdfContentByte pcb = new PdfContentByte(writer);
pcb.setColorStroke(BaseColor.RED);
Rectangle rect = new Rectangle(52.92f, 397.56f, 173.36f, 530.67f);
float[][] inkList = {{61.736111f,530.669250f},{61.295139f,525.820984f},{61.295139f,518.768860f},
{61.295139f,505.986969f},{61.295139f,490.560547f},{61.295139f,470.726562f},{59.972221f,452.214844f},
{57.767361f,434.143890f},{56.003471f,418.276703f},{53.357639f,404.172516f},{51.593750f,391.390625f},
{50.711807f,382.134766f},{49.829861f,376.845703f}
};
//float inkList[][] =
PdfAnnotation an = PdfAnnotation.createInk(writer, rect, "", inkList);
an.setPage(1);
an.setColor(BaseColor.RED);
an.setFlags(PdfAnnotation.FLAGS_PRINT);
writer.addAnnotation(an);
//Step 5
document.close();
输出PDF似乎不包含注释,因为定义的注释只是孤立点的集合
pdfantotation.createInk
的float[][]
参数对应于Ink注释字典的InkList条目:
InkList数组(必需)由n个数组组成的数组,每个数组表示一个冲程路径。每个
阵列应为一系列交替的水平和垂直坐标
默认用户空间,指定沿路径的点。绘制时,将显示
各点应以直线或曲线的形式连接在一起
依赖于实现的方式
因此,在OPs阵列的情况下
float[][] inkList = {{61.736111f,530.669250f},{61.295139f,525.820984f},{61.295139f,518.768860f},
{61.295139f,505.986969f},{61.295139f,490.560547f},{61.295139f,470.726562f},{59.972221f,452.214844f},
{57.767361f,434.143890f},{56.003471f,418.276703f},{53.357639f,404.172516f},{51.593750f,391.390625f},
{50.711807f,382.134766f},{49.829861f,376.845703f}
};
我们收集了13条路径,每条路径只包含一个点。所以,什么都没有画出来
但是,如果我们将所有点合并到一条路径中
float[][] inkList = {{61.736111f,530.669250f,61.295139f,525.820984f,61.295139f,518.768860f,
61.295139f,505.986969f,61.295139f,490.560547f,61.295139f,470.726562f,59.972221f,452.214844f,
57.767361f,434.143890f,56.003471f,418.276703f,53.357639f,404.172516f,51.593750f,391.390625f,
50.711807f,382.134766f,49.829861f,376.845703f}
};
结果是:
这看起来像问题屏幕截图中“H”的左行。但它不起作用-会发生什么情况?输出pdf而不做任何注释。我本周将不再任职。如果你的问题在下周初还没有得到回答,我会调查一下。谢谢。你有没有任何参考资料说明如何使用PdfAnnotation.createInk函数?此外,你知道如何设置批注的线宽吗?谢谢。祝你好运。