Tag: itextsharp

PdfTable:最后一个单元格不可见

我以下列方式使用PdfPTable var myTable = new PdfPTable( 3 ); foreach(var nextString in myStrings) { var nextCell = new PdfPCell( new Phrase( nextString, smallFont ) ); nextCell.Border = Rectangle.NO_BORDER; nextCell.AddCell(nextCell); } pdfDocument.Add(myTable); 一切都很完美,然后总细胞计数乘以列数(3)。 但是当我想创建一个包含3列但只有4个单元格的表时 – 最后一行是不可见的。 如何解决这样的问题? itextsharp 5.3.3.0

从PDF中删除文本

我正在寻找一个解决方案来删除/删除PDF格式的所有文本。 我一直在使用iTextSharp一段时间了,用pdf从中提取文本很容易(使用OCR)。 但是我找不到删除文本的选项。 坦白说, 这个解决方案对我不起作用。 page.GetAsArray(PdfName.CONTENTS); 对我来说返回null,也是在使用PdfName.Text和其他一些我尝试过的时候。 使用的库并不重要,我只是认为iTextsharp应该能够做到这一点。 但是,如果有另一个(免费)解决方案,请带上它 编辑: 只是为了明确我为什么要从pdfs中删除所有文本 我想减小pdf的大小。 我这样做是通过降低pdf中图像的分辨率来实现的。 然而,在很多情况下,矢量图像占据了大部分空间。 所以我想到了以下内容:删除所有文本,而不是将剩余的pdf(仅包含图像和向量)转换为位图(jpeg)。 之后,我再次将文本粘贴在上面。 另一个选择是使文本不可见,但我认为这不容易。

如何获取XFA表单中的字段列表?

我正在尝试获取我的XFA表单中所有字段的简单列表。 我正在使用此代码: private void ListFieldNames() { string pdfTemplate = @”C:\Projects\iTextSharp\SReport.pdf”; MemoryStream m = new MemoryStream(); // title the form this.Text += ” – ” + pdfTemplate; // create a new PDF reader based on the PDF template document PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, m); AcroFields formFields = pdfStamper.AcroFields; AcroFields form […]

使用itextsharp将页面插入现有PDF

我们使用itextsharp从多个PDF文件创建单个PDF。 如何将新页面插入到文件中已有多个页面的PDF文件中? 当我使用添加页面时,它会覆盖现有页面,只保存所选的1页。 以下是我用于将页面添加到现有PDF的代码: PdfReader reader = new PdfReader(sourcePdfPath); Document document = new Document(reader.GetPageSizeWithRotation(1)); PdfCopy pdfCopy = new PdfCopy(document, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create)); MemoryStream memoryStream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(document, memoryStream); document.AddDocListener(writer); document.Open(); for (int p = 1; p s == p) == -1) continue; document.SetPageSize(reader.GetPageSize(p)); document.NewPage(); PdfContentByte cb = writer.DirectContent; PdfImportedPage pageImport = […]

iTextSharp GetFieldPositions到SetSimpleColumn

我正在使用最新版本的iTextSharp: http : //sourceforge.net/projects/itextsharp/ 我在使用GetFieldPositions(fieldName)获取一些AcroField的位置后尝试使用ColumnText.SetSimpleColumn。 我可以找到的所有示例都显示GetFieldPositions返回一个float []但是这似乎不再是这种情况了。 它现在似乎是返回IList,它没有(根据Visual Studio)隐式转换为float []。 在0索引处的返回值内部是一个Rectangle的位置成员,但是由于我看到的示例在返回的float []上执行数学运算,我不确定GetFieldPostions中返回值的值是什么时候使用的使用SetSimpleColumn。 这是我正在引用的一篇文章: http : //blog.dmbcllc.com/2009/07/08/itextsharp-html-to-pdf-positioning-text/ 最简单的接受答案是如何将值从GetFieldPositions转换为SetSimpleColumn。 谢谢!

使用iTextSharp强调文本的一部分

我有一个使用itextsharp来填充PDF表单字段的应用程序。 其中一个字段包含一些带标签的文本。 例如: This text should be underlined. 我希望关闭的文本必须加下划线。 我怎么能这样做? 我怎么能用HTMLWorker来解决它? 这是我编写描述的代码部分: for (int i = 0; i MaxLinePerPage – 1) LongDescWrapped_dt_extra.Add(cnk); else LongDescWrapped_dt.Add(cnk); }

如何获取PDF页面宽度和高度?

我有一个pdf,我想使用iTextSharp获取pdf中每页的宽度和高度? 鉴于这是我想要使用的pdf string source=@”D:\pdf\test.pdf”; PdfReader reader = new PdfReader(source);

打印PDF使用itextsharp创建

我的目标是在客户端计算机上打印RDLC报告而不进行预览。 我无法使用ReportViewer打印按钮,因为它需要安装ActiveX对象,并且没有权限。 所以,我正在使用ITextSharp从渲染的LocalReport返回的字节数组创建PDF,并添加一个JavaScript用于打印。 在调试期间,我可以看到PDF已生成并有2页,一切看起来都还可以。 我没有收到任何错误,该function退出确定,但它不打印。 我做错了什么,或者我错过了什么? 这是我的代码: string jsPrint = “var pp = this.getPrintParams();pp.interactive= pp.constants.interactionLevel.silent;this.print(pp);”; byte[] bytes = report.Render(“PDF”, null, out mimeType, out encoding, out extension, out streamids, out warnings); using (MemoryStream ms = new MemoryStream()) { Document doc = new Document(); PdfWriter writer = PdfWriter.GetInstance(doc, ms); doc.SetPageSize(PageSize.A4); doc.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage page; […]

如何使用iTextSharp在pdf文档中的特定位置写入zapfdingbatslist

我想在特定位置的 iTextSharp中的pdf文档上使用zapfdingbatslist设置复选标记。 到目前为止我可以做的是我可以显示复选标记,但它全部位于文档的一侧,而不是我想要的特定X,Y坐标。 我有一个下面的代码,希望能让你知道我在说什么。 String outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), “Test.pdf”); System.IO.FileStream fs; Document doc = new Document(PageSize.A4, 20, 20, 10, 10); PdfContentByte cb; PdfWriter writer; fs = new System.IO.FileStream(outputFile, System.IO.FileMode.Create); writer = PdfWriter.GetInstance(doc, fs); doc.SetPageSize(iTextSharp.text.PageSize.A4.Rotate()); writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE); doc.Open(); cb = writer.DirectContent; List myList = new ZapfDingbatsList(52); // Check mark symbol from Dingbatslist // I have some […]

当我尝试压缩不同级别的pdf文件时,ITextSharp返回相同大小的pdf

我正在阅读pdf并使用itextsharp注入一些内容。 生成的byte[]与压缩级别一起传递给下面的方法。 public static byte[] method(byte[] pdf,int compressionlevel) { using (MemoryStream outputPdfStream1 = new MemoryStream()) { //PdfReader reader1 = new PdfReader(pdf); //PdfStamper stamper1 = new PdfStamper(reader1, outputPdfStream1); //int level = (int)compressionlevel; //if (level <= 9) // stamper1.Writer.CompressionLevel = (int)compressionlevel; //else // stamper1.Writer.SetFullCompression(); //stamper1.SetFullCompression(); //stamper1.Close(); //byte[] newfile = outputPdfStream1.ToArray(); //return newfile; PdfReader reader = new PdfReader(pdf); […]