我正在使用 PDFBOX - 1.8.13,似乎 PDF Security 没有按预期工作。如果设置了所有者密码而未设置用户密码,如果我不提供所有者密码,PDFBOX 允许解密我的 PDF 文件。请帮助我做错的地方。
加密我的pdf文件的代码:
PDDocument document = PDDocument.load(new File("/home/dummy/dummy.pdf"),null);
AccessPermission perms = new AccessPermission();
perms.setCanAssembleDocument(false);;
perms.setCanExtractContent(false);
perms.setCanModify(false);
perms.setCanModifyAnnotations(false);
perms.setCanExtractForAccessibility(false);
perms.setCanFillInForm(false);
perms.setCanPrint(false);
perms.setReadOnly();
perms.setCanPrintDegraded(false);
perms.setCanExtractForAccessibility(false);
document.setAllSecurityToBeRemoved(false);
StandardProtectionPolicy policy = new StandardProtectionPolicy("AdminPasswordTest", "", perms);
policy.setPermissions(perms);
document.protect(policy);
document.save("/home/dummy/dummy_secured.pdf");
document.close();
Run Code Online (Sandbox Code Playgroud)
解密我的 PDF 的代码
PDDocument doc = PDDocument.load("/home/dummy/dummy_secured.pdf", true);
if (doc.isEncrypted()) { //remove the security before adding protections
doc.decrypt(""); //This should not be DECRYPTED because owner password is not provided
doc.setAllSecurityToBeRemoved(true); //This user is not provided this permissions …Run Code Online (Sandbox Code Playgroud) 我在 Laravel 中使用 DOMPDF 动态生成 PDF,并且必须将该文档保存到 Amazon 的云服务。
我无法将文档保存到云端。但我只能保存在本地。
$pdf = PDF::loadView('contract.contract-pdf', $ data);
$pdf->save('contract.pdf');
$s3 =\Storage::disk('s3');
$s3->put('pdf/contract', new File('contract.pdf'), 'public');
Run Code Online (Sandbox Code Playgroud)
如何发送到云端?
我正在尝试将 html 转换为具有相对路径图像标签的 pdf。
<IMG src="./ups_logo.gif" ALT="UPS Logo">
Run Code Online (Sandbox Code Playgroud)
这是我从 API 获得的动态 HTML。
当我使用 HTMLConverter 将其转换为 PDF 时,如下所示:
string htmlString = "<!DOCTYPE HTML PUBLIC \" -//W3C//DTD HTML 4.0 Transitional//EN\"><HTML><HEAD><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=ISO-8859-1\"><TITLE>UPS Package Tracking</TITLE></HEAD><BODY><TABLE width=500 border=0 cellSpacing=0 cellPadding=0><TR><TD rowspan=\"30\" Width=\"17\"> </TD><TD><TABLE cellSpacing=0 cellPadding=0 border=0 ><TR><TD align=\"left\" width=\"30\" > <IMG src=\"./ups_logo.gif\" ALT=\"UPS Logo\"></TD><TD><IMG src=\"./ups_banner.gif\" ALT=\"UPS Banner\" ></TD></TR></TABLE></TD></TR><TR><TD><TABLE cellSpacing=0 cellPadding=0 width=500 border=0 ><TR><TD colSpan=2 align=left><B>DELIVERY NOTIFICATION</B></TD><TD></TD></TR><TR><TD> </TD></TR><TR><TD colSpan=2>Dear Customer,</TD></TR><TR><TD> </TD></TR><TR><TD colSpan=3>This is in response to your request for delivery information concerning the shipment listed below.</TD></TR><TR><TD> </TD></TR><TR><TD align=right>Tracking …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习PDF文件格式.
为此,我下载了Adobe的PDF规范文件,这个文件非常庞大.
因此,为了帮助我研究PDF的细节,我想通过并行查看一些真实的PDF文件来遵循其抽象解释.
例如,一个想法是创建一个PDF文件(使用LaTeX),该文件只有一个页面,内容甚至只有一个字符a.
但是当我在十六进制编辑器(或其他可以显示内部PDF结构的工具)中打开此PDF文件时,此PDF中有很多二进制或压缩内容.有关我看到的示例,请查看以下屏幕截图:

我根本无法识别此二进制文件的哪个部分代表我a在此PDF中的角色.
到目前为止我尝试过的所有真实PDF文件都是如此.我根本找不到任何包含工作示例代码的PDF文件,以帮助我理解通用PDF语言规范.
我希望其他人向我解释一下:有没有一种实用的方法来研究PDF规范,同时用真实的PDF文件验证它的点点滴滴?
我想知道:PDF程序员常用哪些软件工具可以帮助像我这样的新手开发人员剖析和解压缩现有的二进制PDF文件,以便使用简单的文本编辑器调查他们的源代码?(注意:我不是要求推荐.根据SO FAQ我只想知道这些工具是否存在,以及它们有哪些名称.)
是否有免费提供的PDF文件资源,其中不包含二进制和/或压缩内容?或者我怎么能创建自己的这样的示例文件?
是否有(最好是免费的)PDF编辑器/解析器可以可视化+剖析PDF文件的原始二进制数据并公开其结构?
我只需要第一个钩子.如果你愿意,可以进入真实世界PDF文件的丛林中的狭窄路径,然后我可以跟随...同时使用这个名为"PDF规范"的丛林破坏者的帮助.
看看PDF语法流BT ET我有一些问题,我从PDF32000操作手册中无法理解:
良好的在线资源链接也很棒......
BT /F1 24 Tf ... (My String is here)Tj ET
看看这段代码,
\n\r没有帮助我知道我可以使用PDFKit和PDFJS等...但我真的很想知道PDF语法是如何工作的,在线PDF32000手册真的很长很复杂......
我想将UIView转换为pdf,那里有任何现成的组件,因为我没有时间这样做.如果没有,你可以给我pdf的示例代码
提前致谢
大家好,
我有一个表格有5个步骤,最后一步用户点击提交,而不是所有数据都将存储在数据库中.
现在我想在第一步后生成pdf,在我的表单第一步有个人详细信息字段.所以在第二步用户可以下载这些动态pdf有第一步数据.我知道如何生成PDF,只想用动态变量来做这件事.
但这里的问题是我没有数据从db获取这些所有字段存储在all sep的末尾.如何获取第一步数据以生成PDF文件.
提前致谢 !
在发布此消息之前,我在SO中查看了很多帖子,但很少有人直接说他们需要查看常见问题解答,很少有人提供使用iTextSharp或其他内容的解决方案.但没有人能解决我的问题.我的问题是我有一个byte [],我需要在新的子窗口中生成一个PDF.我们只是使用ASP.NET MVC 4而没有iTextSharp或类似的.如果已经有一个与此完全匹配的帖子,请告诉我.我可以创建新的部分视图
我的部分视图中有一个PDF图标图像.当用户点击它时,我需要在新的浏览器窗口中显示PDF.我可以成功调用一个JavaScript函数来调用从另一个服务器获取文件的控制器.我甚至可以将文件转换为字节数组.我想在新的浏览器窗口中以PDF格式显示这个字节数组.
在视图中我有像下面的PDF图标
<img onclick="ShowCDinPDF('@Url.Action("ShowPDF", "MyController", new {personid= personid} )','', '920','500')" />
Run Code Online (Sandbox Code Playgroud)
ShowCDinPDF在我的javascript中,如下所示
function ShowCDinPDF(popUpURL, windowProperties, w, h) {
var childWindow = window.showModelessDialog(popUpURL, "", "");
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我有以下ShowPDF方法
public ActionResult ShowPDF(string personid)
{
//call service and get data
string fileContent = response.FileContent;
byte[] data = Convert.FromBase64String(fileContent);
**// Here using data I need to show PDF in new window**
}
Run Code Online (Sandbox Code Playgroud)
请告诉我如何创建PDF.
UPDATE
我没什么进展.现在我的代码如下所示.将打开一个新窗口,我会收到错误弹出消息文件不以'%PDF-'开头.我试图找到解决方案,但没有成功.
public ActionResult ShowPDF(string personid)
{
//call service and get data …Run Code Online (Sandbox Code Playgroud)