PDF生成是使用各种工具或库创建PDF文档的过程。
我想从API端生成pdf。我已经创建了 html 文件。有人能解释一下如何将 html 转换为 pdf 吗?
我们通过 Python 从 Excel 生成 PDF。目前,我们按照 Stack Overflow 答案使用 Win32com 库来执行此操作。综上所述,我们显式调用 o = win32com.client.Dispatch("Ex...
我想在使用 PDFBOX 创建的 PDF 中添加超链接,这样我单击一些文本示例“单击此处”将重定向到 URL。我尝试使用 PDAnnotationLink 和 PDActionURI,但如何将其添加到
我正在使用pdfmake。 我想要格式化一个文档,他们在 github 和游乐场上有很好的示例,但我想知道他们是否具有其中的所有功能。 我感觉...
我在nodejs中使用pdf-to-printer包直接打印到选定的打印机。它在大多数系统中工作,但在某些系统中显示以下错误: 类型错误:无法读取
使用 iText 创建 PDF 文档时未应用某些 HTML 和 CSS 样式
我在从 HTML 生成 PDF 时遇到 iText 问题。我正在传递 Locize 中的“导入信息部分”,其中包含粗体标签和列表项目符号 ... 我在从 HTML 生成 PDF 时遇到 iText 问题。我正在传递 Locize 中的“导入信息部分”,其中包含粗体标签和列表项目符号 <li>\n <b>Toll-free</b> (within Canada and the USA): <b>1.800.xxxxxxx</b>\n </li>\n pdf文件在Confirmation.cs中生成。下面列出了从Confirmation.cs 传递到ImportantInformation.cs 的参数“medSrc”。不知何故,粗体样式和列表项目符号不适用于结果 pdf 文件。 我已经调试了一段时间,但仍然不知道发生了什么。有谁知道我错过了什么? 提前谢谢您! 确认.cs ... namespace xxx.Pdf.xxx.xxx { public partial class Confirmation { private IApplication application; public Confirmation(IApplication application) { this.application = application; } public byte[] Create() { var memoryStream = new MemoryStream(); var css = Content.Css; //Create Document PdfDocument pdfDocument = new PdfDocument(new PdfWriter(memoryStream)); PageSize pageSize = PageSize.LETTER; Document document = new Document(pdfDocument, pageSize); Header headerHandler = new Header(document); PageXofY footerHandler = new PageXofY(pdfDocument); document.SetTopMargin(headerHandler.GetTableHeight()); //Assign event-handlers pdfDocument.AddEventHandler(PdfDocumentEvent.START_PAGE, headerHandler); pdfDocument.AddEventHandler(PdfDocumentEvent.END_PAGE, footerHandler); ... // ======>Important Information <======= var importantInfo = new ImportantInformation(); Table impInfoTable = importantInfo.CreateTable( HtmlUtility.MergeCssWithHtml(css, Content.ImportantInformationEmergencyMedical), HtmlUtility.MergeCssWithHtml(css, Content.ImportantInformationTripCancellation)); document.Add(impInfoTable).Add(new Paragraph("\n")); //set column parameters float offset = 36; float columnWidth = (pageSize.GetWidth() - offset * 2 + 15) / 2; float columnHeight = pageSize.GetHeight() - offset * 2; float tableWidth = columnWidth - 10; //define column area Rectangle[] columns = new Rectangle[] { new Rectangle(offset , offset, columnWidth, columnHeight), new Rectangle(columnWidth + 30, offset, columnWidth, columnHeight) }; document.SetRenderer(new ColumnDocumentRenderer(document, columns)); document.Add(new AreaBreak(AreaBreakType.LAST_PAGE)); foreach (Applicant applicant in application.Applicants) { ApplicantTable applicantTable = new ApplicantTable(); Table table = applicantTable.CreateTable(applicant, tableWidth); //Table another = applicantTable.CreateTable(application.Applicants[1], tableWidth); document.Add(table).Add(new Paragraph("\n").SetFontSize(3)); } footerHandler.WriteTotal(pdfDocument); document.Close(); pdfDocument.Close(); var pdf = memoryStream.ToArray(); return pdf; } } } 重要信息.cs ... namespace xxx.xxx.xxx.Pdf { public class ImportantInformation { public Table CreateTable(string medSrc, string tciSrc) { float[] colWidth = new float[] { 50f, 50f }; Table table = new Table(UnitValue.CreatePercentArray(colWidth)); table.SetWidth(new UnitValue(UnitValue.PERCENT, 100)); PdfFont avenir = FontFactory.CreateAvenirLightStandardMedium(); Paragraph title = new Paragraph().Add("**IMPORTANT INFORMATION**").SetFontSize(12).SetFont(avenir).SetBold().SetTextAlignment(TextAlignment.CENTER); Cell titleCell = new Cell(1, 2).Add(title).SetBorder(Border.NO_BORDER); table.AddCell(titleCell); Cell medImportantinfo = new Cell() .SetBorder(Border.NO_BORDER) .Add(new Paragraph("Paragraph A") .SetFirstLineIndent(10f) .SetBold() .SetFontSize(9) .SetFont(avenir)); Cell tciImportantInfo = new Cell() .SetBorder(Border.NO_BORDER) .Add(new Paragraph("Paragraph B") .SetFirstLineIndent(10f) .SetBold() .SetFontSize(9) .SetFont(avenir)); IList<IElement> medInfo = HtmlToCellFormat.HtmlToElements(medSrc); IList<IElement> tciInfo = HtmlToCellFormat.HtmlToElements(tciSrc); foreach (IElement e in medInfo) { medImportantinfo.ElementToCell(e); } foreach (IElement e in tciInfo) { tciImportantInfo.ElementToCell(e); } table.AddCell(medImportantinfo).AddCell(tciImportantInfo); return table; } } } 医学来源: <html> <body>\n <ul style=\"text-align: justify; list-style-type: disc; font-family: avenir, Arial, Helvetica, sans-serif; font-size: 10px\">\n <li>\n In the event of a medical emergency contact:\n <ul style=\"text-align: justify; list-style-type: circle; font-family: avenir, Arial, Helvetica, sans-serif; font-size: 10px\">\n <li>\n <b>Toll-free</b> (within Canada and the USA): <b>1.800xxxxxx</b>\n </li>\n <li>\n <b>Collect</b> (from all other locations): <b>1.xxxxxx</b>\n </li>\n </ul>\n </li>\n ... </body> </html> 更新: 这是 ElementToCell 和 HtmlToElements 函数的定义 public static class HtmlToCellFormat { public static string baseUri = "/"; public static void ElementToCell(this Cell cell, IElement e) { var type = e.GetType().ToString(); if (e.GetType() == typeof(Image)) { cell.Add((Image)e); } else if (e.GetType() == typeof(Paragraph) || (e.GetType() == typeof(List))) { cell.Add((IBlockElement)e); } } public static IList<IElement> HtmlToElements(string content) { ConverterProperties properties = new ConverterProperties(); properties.SetBaseUri(baseUri); FontProvider fontProvider = new DefaultFontProvider(false, false, false); FontProgram fontProgram = FontProgramFactory.CreateFont(); fontProvider.AddFont(fontProgram, ""); properties.SetFontProvider(fontProvider); IList<IElement> elements = HtmlConverter.ConvertToElements(content, properties); return elements; } } 我通过阅读 iText 的文章解决了这个问题 https://developers.itextpdf.com/content/itext-7-converting-html-pdf-pdfhtml/chapter-6-using-fonts-pdfhtml 简单改变 FontProvider fontProvider = new DefaultFontProvider(false, false, false); 到 FontProvider fontProvider = new DefaultFontProvider(true, true, true); ahdgwai7hdgJAKDBAJKUHSIQOvfyuqwgrqbfjkasudAKBFUKAWHFIEFHawuiOWJAEGIFA JABFUWIQDGKWQJHEOIW WDWJQDGIWQHDQWHIORUFCNIVERUCKVRJTHSABDJFASFNWEUIGFOwbf seofwakjfjAWKJFAWHFawkjFVJKAWFL BWHAWQ UKE W;D q bej q
mPDF QR 代码无法使用 mpdf/qrcode 库以 PDF 形式显示
我正在使用 mPDF 以及 mpdf/qrcode 库来生成 QR 码并将其嵌入 PDF 文档中。这些 PDF 是使用 PHPSpreadsheet 从 XLS 文件中提取的数据生成的。整个
我正在尝试将 djvu 文档转换为 pdf 文档。文档是书籍,需要批量转换。 我使用过的所有 djvu 到 pdf 转换器,包括 ddjvu 实用程序、a-pdf-2-dj...
如何使用 JavaScript 或 jQuery 将印地语文本 DIV 转换为 PDF
我有一个 DIV,它包含一些印地语/Unicode/英语文本。 我想将此 DIV 转换为 PDF,但印地语文本未以正确的格式显示。 如何在 HT 中转换 Unicode/印地语文本...
是否可以通过媒体查询更改 HTML 中 PDF 链接(href 标签)的 src?
我希望支持某人举办网络竞赛。他们希望在电子邮件中添加二维码,链接到网站上托管的 PDF。然而,他们希望托管两个版本的 PDF,...
如何使用node将.doc、.docx、.ppt文件转换为.pdf文件
如何使用node将.doc、.docx、.ppt文件转换为pdf。我搜索了很多,但找不到任何可用于将 doc 文件转换为 pdf 的免费库。我只想转换 .doc/.docx...
就目前情况而言,我大约有 12 列,并且所有列的宽度都完全相同。问题是有些列不需要那么多空间。如何使栏目适合其内容? ...
WebSupergoo ABCpdf10 PDF 异常无法添加 HTML
我们遇到以下异常。它在本地运行良好。有人可以提供任何建议吗? 9528 19:15:28 错误 EDComponents > EDPDFGenerator 异常 例外:WebSupergoo.ABCpdf10.
请从我的保管箱下载sample.xlsx。 https://www.dropbox.com/scl/fi/dm7okj2j5l2onlq2lmd6m/sample.xlsx?rlkey=obm03i1ysexnajay1zzv2jddy&st=tan1kkj1&dl=0 它包含简单的数据。 ...
在 PDF 生成库(如 pdf-lib)中跨不同语言的多语言文本的 PDF 渲染问题
我在项目中使用 @react-pdf/renderer 和 pdf-lib 等库生成 PDF,并且在多语言文本的字体兼容性方面遇到了重大挑战。在我的用例中,
我需要使用reportlab(v3.6.10)(SimpleDocTemplate)在python(v3.10)中生成带目录的PDF。 页码需要动态设置,但是我找到的示例...
Jsreport/ChromePDF 页眉模板和页脚模板位置因多页内容而溢出
我正在使用JsReport(带有chrome-pdf)从html生成pdf文件。我的 html 内容有一个表格,由于表格内的数据,该表格较大;因此它分布在 3 个...
我通过composer成功安装了mpdf。 这是我的 PHP 代码: require_once __DIR__ 。 '/vendor/autoload.php'; $mpdf=new \Mpdf\Mpdf(); $mpdf->WriteHTML("test"); $...
我正在使用 Dompdf 从 PHP 应用程序中的 HTML 模板生成 PDF 发票。 HTML/CSS 模板包含 display: flex 用于布局目的,但是当使用 Dompdf 渲染为 PDF 时,