我们的应用程序在Delphi中编写,生成一系列报告,大多数报告以PDF格式生成,在生成时自动打开.Adobe X引入了一项默认启用的功能"启动时启用保护模式".报告pdf文件使用"ShelExecute"打开.
var
pdfFile: string;
begin
pdfFile := 'C:\Users\Ronaldo\Documents\appName\reports\file.pdf';
ShellExecute(0, 'open', PChar(pdfFile), '', '', SW_SHOW);
//
end;
Run Code Online (Sandbox Code Playgroud)
由于这个新的Adobe Reader新设置,在Win 7或Vista下,我们在打开文档时收到错误消息.双击文档打开它没有任何问题.有没有办法禁用受保护的方法 - 或打开文档的另一种方法,而不会得到错误(解决方法)?
*更多信息*
PDF文件正在我们的服务器应用程序上生成,流式传输到客户端,客户端生成pdf(使用Write) - 首先我虽然这可能是问题 - 但同样,为什么双击工作正常.
我创建了一个虚拟应用程序,除了使用相同的上述代码打开pdf之外什么都不做,它可以工作.我已经检查了应用程序的权限 - 完全相同 - 唯一的区别是,使用适当的安装程序在操作系统上安装了无效的安装程序 - 我刚创建的另一个(虚拟安装程序)并将其放在那里.
其中一条评论询问文件关联 - 这应该不是一个问题,因为应用程序成功启动Adobe阅读器 - Adobe阅读器然后给我"访问被拒绝"错误消息.双击同一文件可以正常工作.
新信息 - 30/03/2011 - 下午2:50 - 新西兰时间
我对代码进行了更改,只是为了测试应用程序本身和虚拟应用程序之间的唯一区别.它不是自动获取文件路径和文件名,而是打开一个OpenDialog - opendialog的Filename属性用作ShellExecute的参数(作为Ken应答状态后的注释) - 它可以工作.为什么,当你从一个打开的对话框中获取文件名时,它可以工作 - 注意我没有从对话框中打开文件 - 我得到了文件名,并将其用作ShellExecute的参数.
更新了代码示例
当用户单击"生成报告"按钮时,报告将在生成后自动打开.除此之外,还有一个网格,显示到目前为止为该用户生成的所有报告 - 这是双击该网格的代码:
if GetSelectedReport <> nil then // this will check if the user selected an report
if TReportItemState(GetSelectedReport.State) in [risGenerated,risViewed] …
Run Code Online (Sandbox Code Playgroud) 我正在签署带有文档时间戳签名的PADES-LTV签名格式的pdf文档.
通常,签名文件都可以.签名和文档时间戳签名都经过验证,一切正常.但是,有时会出现以下结果:
当我尝试使用Adobe Reader 10.1.0.534打开签名文档时,将验证签名,但无法验证文档时间戳签名.它说:至少有一个签名需要在顶栏上进行验证.当我查看左侧的"签名"部分时,它说:签名者的身份无效,因为它已过期或尚未生效.如果我尝试打开文档时间戳的签名详细信息,Adobe Reader会崩溃.(我提交了一个关于此问题的错误报告,但我还没有收到任何回复)
当我使用Adobe Acrobat X pro打开签名文档并查看文档时间戳签名的详细信息时,此值" 1970/01/01 03:00:00 + 03'00' "将显示在签名日期字段中.实际上,日期字段应该不可用,因为ETSI 102 778-4 V1.1.2说:在文档时间戳字典中,名称,M,位置,原因和联系信息不应存在.
为什么adobe reader会显示这个值1970/01/01 03:00:00 + 03'00'而不是不可用?
有什么不对?
谢谢
有没有人知道如何从命令行调用Adobe Reader打开预先填充的Adobe表单(启用扩展),例如MRBIGSORDER0001.PDF,允许用户更改它然后执行保存并退出?
目前,当打开填充的表单进行更新时,点击"保存"或工具栏上的"保存"按钮会提示用户"另存为",这会导致他们创建多个版本.
由于我无法立即进入的原因,我需要在尝试打印文档时阻止Adobe Reader窗口打开.在我之前处理这个问题的开发人员设置了以下标志,虽然我不确定他们是为了什么 -
if (RegistryManager.GetAcrobatVersion() >= 9.0f)
printerArg = "\"" + printerName + "\"";
else
printerArg = printerName;
Process myProc = new Process();
myProc.StartInfo.FileName = fileName;
myProc.StartInfo.Verb = "printto";
myProc.StartInfo.UseShellExecute = true;
myProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProc.StartInfo.CreateNoWindow = true;
myProc.StartInfo.Arguments = "\"" + printerName + "\"";
bool result = myProc.Start();
if (myProc.WaitForInputIdle())
{
if (!myProc.HasExited)
{
myProc.WaitForExit(Convert.ToInt32(5000));
myProc.Kill();
}
}
myProc.Close();
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢!
谢谢,
Teja.
我正在尝试将pdfs转换为tiff图像以用于跟随OCR.我使用"-density 300x300 -depth 8"作为参数.第一个问题是从500 KB pdf文件我得到72 MB的tiff文件.第二个问题是导致OCR失败的结果图像质量差.在这里你可以自己看.Adobe Acrobat reader生成(打印)tiff图像:
ImageMaggick tiff图片:
差异很大.如何使用ImageMaggick获得与Adobe生成的图像一样好的效果?不是tiff neccesary,其他格式也会很好.
UPD:我发现'antialias'选项.现在它好多了.但仍然是OCR结果不如Adobe版本那么准确.
我正在使用iText库为现有PDF文件添加额外信息.额外信息是应以自定义TTF字体呈现的文本.
问题是文本仅在Adobe Reader中不可见.其他PDF查看器,例如Ubuntu中的默认eVince阅读器和Google在线PDF阅读器,可以很好地呈现自定义嵌入字体中的标记文本.
我尝试了多种编码,例如Cp1251,BaseFont.Identity_H,......
魔法发生的代码:
PdfReader pdfReader = new PdfReader(new FileInputStream(inputPdf));
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("stamped.pdf"));
PdfContentByte canvas = pdfStamper.getOverContent(1);
String text = "The stamp";
BaseFont bf = BaseFont.createFont("assign.ttf", "Cp1251",BaseFont.EMBEDDED);
canvas.beginText();
canvas.setColorFill(BaseColor.BLUE);
canvas.setFontAndSize(bf, 13);
canvas.moveText(310, 600);
canvas.showText(text);
pdfStamper.close();
Run Code Online (Sandbox Code Playgroud) 如何在Adobe Reader中打开我在代码隐藏中创建的PDF文档?
我无法让我的pdf与Adobe Reader DC联机工作.
http://www.okeechobeecountytaxcollector.com/Documents/FeeCalculatorRev0909.pdf
没有任何按钮或功能正常工作.(就像当你点击motorvehicles,或移动房屋或顶部的任何按钮时,应该会出现一些选择)但是如果我在任何其他阅读器中打开它可以正常工作.有谁知道如何编辑文档以便在Adobe Reader DC中正常工作?是否有文档中的任何设置或您必须更改的内容才能在DC中工作?
我已经尝试将安全部分中的设置更改为Acrobat X及更高版本,但这也没有修复它.
我正在使用 C# 和 PDFium 库将 PDF 打印到特定标签打印机。当我通过 Chrome、Edge 或我的应用程序打印此 PDF 时,质量有问题。当我通过 Adobe Reader 或 Foxit Reader 打印时,质量正是我想要的。
这是差异的imgur图片:https ://i.imgur.com/gSnYcEE.jpg
我的应用程序是标记为“网络打印”的应用程序。正如您在图像中看到的,它的质量与浏览器的性能相匹配。尤其是右边的小文字是我最关心的。
那么,桌面 PDF 阅读器在打印时有何不同?
这是在 C# 中实际打印 PDF 的代码:
public static Boolean Print(PrintQueue printer, byte[] content, Boolean landscape)
{
using (MemoryStream stream = new MemoryStream(content))
{
PdfDocument doc = PdfDocument.Load(stream);
PrintDocument pd = GetPrintDocumentAsPDF(printer.Name, doc, landscape);
pd.Print();
return true;
}
}
private static PrintDocument GetPrintDocumentAsPDF(String printerName, PdfDocument doc, Boolean landscape)
{
PdfPrintMultiplePages multiPages = new PdfPrintMultiplePages(1, 1, landscape ? System.Windows.Forms.Orientation.Horizontal …
Run Code Online (Sandbox Code Playgroud) 我正在使用Headless Chrome通过printToPDF CDP 方法打印 PDF 文件。如果文档有大量页面,那么如果我实际打印 PDF 文件,或者打印到另一个 PDF 文件,那么随着页面数量的增加,页面质量会变差。
为什么会发生这种情况,我该如何解决这个问题?
我在 Win10 上以无头模式使用 Google Chrome 69.0,并使用 Node.js v8.11.3。
例如,我们想打印出以下 HTML 内容,而不需要任何额外的 printToPDF 设置。
<div class="lorem">
1) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur aliquet sem sed neque faucibus dignissim. Sed congue sodales ex, vel bibendum dolor placerat vel. Curabitur ultricies luctus dui, a accumsan purus placerat a. Nullam ut lectus ultricies, mattis enim non, rutrum erat. Nulla sodales tellus in bibendum vehicula. Aenean aliquam tellus …
Run Code Online (Sandbox Code Playgroud) html pdf-generation adobe-reader google-chrome-devtools google-chrome-headless
adobe-reader ×10
pdf ×6
c# ×2
.net ×1
acrobat ×1
adobe ×1
command-line ×1
delphi ×1
ghostscript ×1
html ×1
imagemagick ×1
itext ×1
javascript ×1
pades ×1
pdf-form ×1
pdfium ×1
printing ×1
tiff ×1
timestamp ×1
truetype ×1
vb.net ×1
vba ×1
windows-7 ×1
winforms ×1