Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java iText7。如何展平现有pdf文档_Java_Itext7 - Fatal编程技术网

Java iText7。如何展平现有pdf文档

Java iText7。如何展平现有pdf文档,java,itext7,Java,Itext7,我用图像屏蔽了现有的pdf文档,如本问题所述: 我的问题是,使用Acrobat Reader DC Pro的人仍然可以编辑文档并删除图像,从而使遮罩无效 我一直在考虑将PDI文档扁平化,但API似乎适用于表单,而不是整个文档。 我尝试了下面的代码,但仍然可以编辑pdf并删除遮罩图像 你对此有什么建议吗 // Read the pdf input PdfReader pdfReader = new PdfReader(value); ByteArrayOutputStream outputStre

我用图像屏蔽了现有的pdf文档,如本问题所述:

我的问题是,使用Acrobat Reader DC Pro的人仍然可以编辑文档并删除图像,从而使遮罩无效

我一直在考虑将PDI文档扁平化,但API似乎适用于表单,而不是整个文档。 我尝试了下面的代码,但仍然可以编辑pdf并删除遮罩图像

你对此有什么建议吗

// Read the pdf input
PdfReader pdfReader = new PdfReader(value);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfWriter pdfWriter = new PdfWriter(outputStream);

PdfDocument pdfDoc = new PdfDocument(pdfReader, pdfWriter);
Document document = new Document(pdfDoc);
// Creating an ImageData object
ImageData data = ImageDataFactory.create(fileName);


for (int x = 1; x < 800; ) {
    for (int y = 1; y < 1000; ) {
        Image image = new Image(data);
        image.setFixedPosition(x , y);
        document.add(image);

        y = y + y1 + 40;
    }
    x = x + x1 + 40;
}
PdfAcroForm.getAcroForm(pdfDoc, true).flattenFields();
// The content has now been modified, return it as a stream
document.close();
//读取pdf输入
PdfReader PdfReader=新PdfReader(值);
ByteArrayOutputStream outputStream=新建ByteArrayOutputStream();
PdfWriter PdfWriter=新的PdfWriter(outputStream);
PdfDocument pdfDoc=新的PdfDocument(pdfReader、pdfWriter);
文件=新文件(pdfDoc);
//创建ImageData对象
ImageData数据=ImageDataFactory.create(文件名);
对于(int x=1;x<800;){
对于(int y=1;y<1000;){
图像=新图像(数据);
图像。设置固定位置(x,y);
文件。添加(图像);
y=y+y1+40;
}
x=x+x1+40;
}
getAcroForm(pdfDoc,true).flattfields();
//内容现在已被修改,请将其作为流返回
document.close();

我希望:图像无法删除,或者文档无法编辑

为什么不设置PDF权限?作为Adobe产品,Acrobat将严格遵守这些要求。是的,为什么不呢。你是如何通过编程实现的?那是。。。您本可以在itext API文档中查找的内容?但是在这里,有一个链接:-保持用户名和密码为空,然后保留您想要允许的权限。在文档级别禁止任何其他内容。(例如,即使你不想让人们编辑,你可能仍然想要
AllowFillIn
)公平点-我仍然假设他们知道如何使用谷歌,但itext7中的权限使用诚实,如果有一些通用的好的itext文档,如果我问这些问题,那是因为我在别处找不到答案。阅读javadoc不会告诉你如何做,为什么不只是设置PDF权限?作为Adobe产品,Acrobat将严格遵守这些要求。是的,为什么不呢。你是如何通过编程实现的?那是。。。您本可以在itext API文档中查找的内容?但是在这里,有一个链接:-保持用户名和密码为空,然后保留您想要允许的权限。在文档级别禁止任何其他内容。(例如,即使你不想让人们编辑,你可能仍然想要
AllowFillIn
)公平点-我仍然假设他们知道如何使用谷歌,但itext7中的权限使用诚实,如果有一些通用的好的itext文档,如果我问这些问题,那是因为我在别处找不到答案。阅读javadoc不会告诉你如何做事情