itext7 相关问题

iText 7是iText库(以前的版本5)的完全重写 - 具有不同的API - 用于在Java和.NET中创建和操作PDF文档。

使用 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

回答 2 投票 0

使用 iText (7.1.15) 和 C# 读取 PDF 会给出 \uXXX 字符

我正在尝试阅读包含英语和希伯来语文本的 PDF 文件。 GetTextFromPage 方法给了我以下长而奇怪的字符串: ” 2 : 1 3 - # 克\u0003  u000b \u0013\u000f\

回答 1 投票 0

使用 iText Java 对加密的 PDF 文件进行数字签名时如何保留权限?

我想对加密的 PDF 文件进行数字签名。原始 PDF 受密码保护,如果不提供所有者密码,您将无法修改它或复制其中的文本。然而,我发现我...

回答 1 投票 0

如何正确地将多个画布添加到PDF中?

我用iText 9.0.0编写了一个Java程序来创建PDF文件。我需要将外部 PDF 作为 XObject 添加到 PDF 的每个页面。如果 PDF 页数为 1 或 2,一切都会正常。但是,...

回答 1 投票 0

在 C# 中使用外部签名哈希和证书对 pdf 进行签名

我需要使用外部服务签署 pdf。因此我首先需要一个像 公共字符串 GetHashToSign(byte[] unsignedPdf, X509Certificate cert) { // 生成并返回

回答 1 投票 0

如何在 iText Java 中直接将 AI (Adobe Illustrator) / SVG / PDF 文件嵌入 PDF 以避免渲染故障?

SVG 文件在 iText Java 中无法正确呈现。我应该找到一种更好的方法将矢量图插入到我的 pdf 文件中。 我想用一些矢量图和文本编程生成 PDF 文件...

回答 1 投票 0

如何绘制表格(具有特定布局)?

我需要在pdf中绘制表格,我使用itext 7 java。 表表 = 新表(4); table.setTextAlignment(TextAlignment.CENTER); table.setBorder(Border.NO_BORDER); 表.setPad...

回答 1 投票 0

如何在C#中使用iText7在PDF中生成多页表格?

我正在尝试使用 C# 中的 iText7 生成一个包含跨多个页面的表格的 PDF。但是,我遇到一个错误:“PdfPages 树只能生成一次。” 这是一个简单的...

回答 1 投票 0

使用 Windows 10+“打印到 PDF”选项时 PDF 水印会翻转

我正在使用 Windows 10 或更高版本中的“打印到 PDF”功能生成带水印的 PDF,但我遇到了打印或查看时水印翻转或出现镜像的问题。我正在使用...

回答 1 投票 0

在 iText7 中合并 pdf 数组页面

这是我用于合并从 iTextSharp 中的数据库流式传输的 pdf 文档的功能 公共函数 PDF_Functions_AddPages(PDFByteContent As List(Of Byte())) As Byte() 尝试 使用 MS 作为新系统...

回答 1 投票 0

itext7 中的 htmlConverter 在我希望在 C# 中关闭 pdf 文档之前关闭它

我正在使用 iText7 将 HTML 转换为 PDF,运行完美 然而这个电话: HtmlConverter.ConvertToPdf(htmlStream, 文档); 将在调用后关闭文档,但我不...

回答 2 投票 0

“iText.Commons.Actions.EventManager”的类型初始值设定项引发异常

我正在尝试构建一个简单的 Powershell cmdlet,它将使用 iText7 打开 PDF 文件并输出文本。我尝试过使用 Powershell Gallery 中的 iText7Module,但是

回答 1 投票 0

什么会导致“iText.Commons.Actions.EventManager”的类型初始值设定项在 itext7 中创建 PdfDocument 对象时抛出异常?

背景:我在 Windows Server 2016 上用 C# .NET 创建了一个自定义 Windows 服务,用于从各种输入数据文件加载数据。它会轮询收件箱文件夹中的文件并将其数据加载到我们的数据库中...

回答 1 投票 0

不带构造函数的 Pkcs12Store

早上好。我已经尝试了很多天将我使用 iTextSharp 的签名过程转移到 iText7。 它给我的主要错误是尝试使用 Pkcs12Stores 时,因为它告诉我......

回答 1 投票 0

IText7:CertIDBC.MatchesIssuer 实现正确吗?

IText7 dotnet。 CertIDBC 中的当前实现: 公共虚拟布尔MatchesIssuer(IX509证书颁发者Cert){ 返回新的 CertIDBC( 证书ID.HashAlgorithm.Algorithm.Id,

回答 1 投票 0

使用 iText7 修改现有 PDF

我正在尝试使用 iText7 和 c# 更改现有 PDF 文件中所有文本字段的字体。在所有示例中,我看到创建的 PdfDocument 对象具有“源”和“

回答 1 投票 0

设置iText文档的背景颜色

我只是不知道如何更改文档的背景颜色。我对其他 LayoutElements 做了同样的事情,但在这种情况下它不起作用。你会怎么做呢? 文档 doc = 新

回答 1 投票 0

如何在itext7 C#中将页面大小从A3缩放到A4?

我尝试将 HTML 转换为 A4 页面大小的 PDF。但内容太长,PDF 分成了 2 页。我只想把它写进一页。所以我的想法是转换为A3尺寸的PDF,然后缩小到A4尺寸...

回答 2 投票 0

使用 Itext7 html pdf 在 PDF 中创建隐藏(仅限屏幕阅读器)文本

我正在尝试向我的 pdf 添加文本,该文本只能由屏幕阅读器查看。该 pdf 包含一个将负数(即 -4.565)转换为 (4.565) - 红色的表格。当我使用屏幕时...

回答 1 投票 0

Itext 7.0.2 图像顺时针旋转

图像元素(com.itextpdf.layout.element.Image)支持逆时针旋转。 是否可以对同一张图像进行顺时针旋转? PdfPage 页 = iTextPdfDoc.getLastPage(); Pdf画布

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.