我的目标是将我的PDF文件转换为HTML。然后将HTML转换回PDF。当我在一个不安全且没有密码的普通文件上这样做时,它工作得很完美。但是当我在一个安全的文件上这样做并且没有密码时,它不起作用。我该怎么办?你怎么能帮我修复这个bug?**
这是我的代码,将PDF转换为HTML,将HTML转换为PDF。
<?php
$fileName = 'ar-11'; // Replace with your PDF file path
$fileNameLower = strtolower($fileName); // Replace with your PDF file path
$pdfFilePath = '/opt/lampp/htdocs/'.$fileNameLower.'.pdf'; // Replace with your PDF file path
$outputHtmlPath = $fileNameLower.'.html'; // Replace with the desired HTML output path
// Create a temporary file for the unlocked PDF
$unlockedPdf = tempnam(sys_get_temp_dir(), 'unlocked_pdf_');
// // Use qpdf to remove password protection and encryption
$qpdfDecryptCommand = "qpdf --decrypt {$pdfFilePath} {$unlockedPdf}";
shell_exec($qpdfDecryptCommand);
// Use pdf2htmlEX to convert the unlocked PDF to HTML
$command = "pdf2htmlEX --process-outline 0 --fit-width 1024 --space-as-offset 1 {$unlockedPdf} {$outputHtmlPath}";
shell_exec($command);
// Clean up temporary files if necessary
unlink($unlockedPdf);
// Add a delay to ensure the HTML is generated before converting to PDF
sleep(2);
// Create a PDF from the translated HTML using wkhtmltopdf
$pdfOutputPath = $fileNameLower . '-translated.pdf';
// Add the --enable-local-file-access option to enable access to local files (HTML)
$wkhtmltopdfCommand = "wkhtmltopdf --enable-local-file-access {$outputHtmlPath} {$pdfOutputPath}";
shell_exec($wkhtmltopdfCommand);
echo 'Translation completed and saved as HTML and PDF.';
**以下是我使用的原始PDF“ar-11.pdf”内容的图像:**x1c 0d1x
这是我从HTML转换为PDF的PDF的图像,不想添加文本:
任何建议将不胜感激。
1条答案
按热度按时间2mbi3lxu1#
XFA表单是一个专业领域,因此需要专门的处理(通常不是免费的)。最好的问题概述是https://www.datalogics.com/access-xfa-forms-with-forms-flattener
有一些很好的基于Web/服务器的系统可以将XML转换为可用的HTML,这里有一个自定义颜色的例子,它具有服务器命令行功能,(还有其他的,如Adobe(LiveCycle ES 4),Apryse iText https://kb.itextsupport.com/home/it7kb/faq/how-to-fill-xfa-form-using-itext-without-breaking-usage-rights,Aspose,Foxit等。).
转换所有表单
FormVu支持转换AcroForms和XFA Forms。所有表单都转换为HTML5/CSS和JavaScript,保留样式和布局。