Java 保存PDF格式,但不能打印文件
我需要在JSP中显示以PDF格式呈现的报告,但是如果您通过web访问报告,则PDF应该是可打印的。报告还允许用户将报告保存为PDF格式,但不允许打印保存的PDF 请帮帮我。目前,我们可以将报告保存为PDF格式,但无法打印。当通过web访问报告时,无法打印报告 我用的是网虫和玻璃鱼 目标:Java 保存PDF格式,但不能打印文件,java,pdf,netbeans,glassfish,Java,Pdf,Netbeans,Glassfish,我需要在JSP中显示以PDF格式呈现的报告,但是如果您通过web访问报告,则PDF应该是可打印的。报告还允许用户将报告保存为PDF格式,但不允许打印保存的PDF 请帮帮我。目前,我们可以将报告保存为PDF格式,但无法打印。当通过web访问报告时,无法打印报告 我用的是网虫和玻璃鱼 目标: 保存报告,但不允许打印报告 如果通过web访问报告,则打印报告 您可能需要为PDF设置权限。在创建PDF的过程中,应在代码中添加如下内容: import com.itextpdf.text.DocumentEx
您可能需要为PDF设置权限。在创建PDF的过程中,应在代码中添加如下内容:
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.setEncryption("Hello".getBytes(), "World".getBytes(),
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
}
我的回答是以实例为基础的
编辑:您可能会发现,他们在其中提供了以下解决方案:
PdfReader reader = new PdfReader("my-old-file.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("my-new-file.pdf"));
stamper.setEncryption("my-owner-password".getBytes(), "my-user-password".getBytes(),
PdfWriter.AllowPrinting | PdfWriter.AllowCopy, PdfWriter.STRENGTH40BITS);
stamper.close();
但有人指出,在AdobeReader9.3中,打印选项没有被正确禁用。我在最新版本的Adobe Reader中遇到了一些意外行为,请尝试一下代码,看看会发生什么。您使用的是哪个pdf实用程序?谢谢您的回复,是的。目前我们正在使用iText库。但我们只能禁用“打印”按钮并将文件另存为pdf。但我们还需要在web应用程序上启用“打印”按钮,并在保存的pdf文件上禁用“打印”按钮。我编辑了答案,因此现在它包含了我想要提供的信息,谢谢您的观察。谢谢您的回复。我尝试使用上面提供的代码,当通过web应用程序访问PDF时,可以打印PDF,但当我尝试将其保存为PDF格式时,PDF也可以打印。有可能做到这一点吗?请尝试删除“PdfWriter.ALLOW|PRINTING |”并在不使用所有者密码的情况下打开(也就是说,使用用户密码打开它,如果没有设置用户密码,则完全不使用密码)。