Tag: itextsharp

使用Itextsharp填写PDF表格

我正在尝试使用ITextsharp填写表单,并尝试使用以下代码来获取pdf中的所有字段: string pdfTemplate = @”c:\Temp\questionnaire.pdf”; PdfReader pdfReader = new PdfReader(pdfTemplate); StringBuilder sb = new StringBuilder(); foreach (var de in pdfReader.AcroFields.Fields) { sb.Append(de.Key.ToString() + Environment.NewLine); } 但foreach循环始终为空计数。 我是否需要做一些事情来提交自己,因为我从这里尝试了这个例子,它工作得很好…… 这是我试图填写的pdf的一个例子 有任何想法吗? 编辑::

有没有办法用itextsharp替换PDF文件中的文本?

我正在使用itextsharp生成PDF,但我需要动态更改一些文本。 我知道如果有任何AcroField可以改变,但我的PDF doen有任何一个。 它只有一些纯文本,我需要改变其中的一些。 有谁知道怎么做?

CSS样式未通过iTextSharp应用于PDF

我试图使用iTextSharp将我的网页的一部分转换为pdf,并且在pdf生成工作正常的情况下,没有应用任何css样式。 我尝试过一次一个地应用这些样式,但这似乎不起作用。 这是我到目前为止所提出的: //Get the portion of the page to convert. StringBuilder sb = new StringBuilder(); print_div.RenderControl(new HtmlTextWriter(new StringWriter(sb))); string html = sb.ToString(); //Generate a random filename to use for the pdf Guid random_guid; random_guid = Guid.NewGuid(); string fileName = random_guid.ToString() + “.pdf”; string filename_with_folder = @”pdf\sl_” + fileName; string fullFilePath = System.IO.Path.Combine(Request.PhysicalApplicationPath, filename_with_folder); using […]

在itextsharp中旋转文本/垂直文本

我需要垂直文本或只是一种在ITextSharp中旋转ColumnText的方法。 (它需要绝对的位置) 直到现在我已经尝试了很多不同的解决方案,但没有运气。 这是几次尝试: 1。 _cb.SetFontAndSize(BaseFont.CreateFont(), 12f); _cb.ShowTextAligned(Element.ALIGN_CENTER, “Hello World”, 50, 50, 90); 2。 var vt = new VerticalText(_cb); vt.SetVerticalLayout(50, 50, 400, 8, 30); vt.AddText(new Chunk(“asdasd”,_sf.ChildBackPageTextOneFont())); vt.Go(); 3。 System.Drawing.Drawing2D.Matrix foo = new System.Drawing.Drawing2D.Matrix(); foo.Rotate(90); _cb.ConcatCTM(foo); 我也尝试用System.Drawing.Graphics绘制它,但质量非常差。 有解决方案吗 谢谢。

使用iTextSharp在PdfPCell中自动调整图像大小

我对iTextSharp库中的图像有一个奇怪的问题。 我正在将图像添加到PdfPCell中,并且由于某种原因它会被放大。 我如何保持原始尺寸? 这是 100%的PDF 图像 ,并在paint.net中打开原始大小的图像。 alt text http://sofzh.miximages.com/c%23/3kn.png我虽然打印时图像相同,但图片上的差异在打印版本上是相同的。 必须使用ScaleXXX手动缩放图像以使其向右移动似乎有点不合逻辑并且不会给出好的结果。 那么如何将图像的原始大小放在表格的PdfPCell中而不必缩放呢? 这是我的代码: private PdfPTable CreateTestPDF() { PdfPTable table = new PdfPTable(1); table.WidthPercentage = 100; Phrase phrase = new Phrase(“MY TITLE”, _font24Bold); table.AddCell(phrase); PdfPTable nestedTable = new PdfPTable(5); table.WidthPercentage = 100; Phrase cellText = new Phrase(“cell 1”, _font9BoldBlack); nestedTable.AddCell(cellText); cellText = new Phrase(“cell 2”, _font9BoldBlack); […]

使用iTextSharp禁用扩展function

我有一个PDF模板,其中包含启用了扩展function的表单。 使用iTextSharp填写此表单的字段后,使用acrobat reader的用户会收到错误消息: 本文档在Adobe Reader中启用了扩展function。 该文档自创建以来已更改,并且不再使用扩展function。 请联系作者以获取本文档的原始版本。 我搜索了一下,但所有post都谈到“启用”扩展function,但是,我希望表单字段保持禁用状态并关闭扩展function 这是我正在使用的示例代码: using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open)) using (var newFileStream = new FileStream(fileNameNew, FileMode.Create)) { // Open existing PDF var pdfReader = new PdfReader(existingFileStream); // PdfStamper, which will create var stamper = new PdfStamper(pdfReader, newFileStream); var form = stamper.AcroFields; var fieldKeys = form.Fields.Keys; foreach (string fieldKey […]

ItextSharp – 使用C#自动填写pdf表单 – 复选框问题

我正在填写使用Acrobat pro和iTextSharp&C#创建的pdf表单,并且在尝试勾选复选框字段时发现自己卡住了。 我有它为单选按钮和文本框工作,但似乎无法使复选框工作。 我还确认了这个案例中的复选框名称“Q7b”在acrobat文档中是正确的,可以使用下面的代码在表单上找到它 private string getfieldnames(AcroFields fields) { StringBuilder sb = new StringBuilder(); foreach (string key in fields.Fields.Keys) { sb.Append(key + Environment.NewLine); } return sb.ToString(); } 我用来更新复选框的代码如下 using (MemoryStream pdfFlat = new MemoryStream()) { PdfReader pdfReader = new PdfReader(strPath); PdfStamper pdfStamp = new PdfStamper(pdfReader, pdfFlat); AcroFields fields = pdfStamp.AcroFields; //textfields fields.SetField(“Initiating_Doctor”, “Doctor A”); fields.SetField(“Speciality”, […]

使用itextsharp重新排序pdf文件中的页面

我正在尝试重新排序PDF文件中的几个页面。 我在博客中发现了一些代码但无法使其工作。 我有两页pdf,我想让最后一页显示为第一页。 我总是得到一个例外,说页码必须与订单匹配。 当我检查文档对象时,它显示0页。 但传入的PDF有两页。 public void reOrder(string inputFile) { Document document = new Document(); FileStream fs = new FileStream(inputFile, FileMode.Open); PdfWriter writer = PdfWriter.GetInstance(document, fs); document.AddDocListener(writer); writer.SetLinearPageMode(); int[] order = {2,1}; writer.ReorderPages(order); }

在iTextSharp中居中pdfimported页面

我通过iTextSharp使用以下function将PDF附加在一起。 它的工作正常。 唯一的问题是,大于文档(A4)的设置大小的PDF最终会缩放并放置在文档的左下角。 我想把它放在中心位置。 有人能指出我正确的方向来实现这一目标吗? 干杯。 private void appendPDF(appendDoc doc) { PdfContentByte pdfContentByte = pdfWriter.DirectContent; PdfReader pdfReader = null; if (doc.MemoryStream != null && doc.MemoryStream.CanRead) { pdfReader = new PdfReader(doc.MemoryStream); } else if (File.Exists(doc.FullFilePath)) { pdfReader = new PdfReader(doc.FullFilePath); } if (pdfReader != null) { for (int pageIndex = 1; pageIndex 1f) { iTextDocument.SetPageSize(PageSize.A4.Rotate()); } […]

从1页模板生成iTextSharp高效批量Pdf

我使用ITextSharp生成多页PDF,每个页面都有相同的模板。 问题是PDF按照模板的大小以Phisical Size增长。 我必须使用ACROFIELDS 。 如何减小最终文件大小? 这是pdf处理程序的代码片段: public void ProcessRequest(HttpContext context) { Context = context; Response = context.Response; Request = context.Request; try { LoadDataInternal(); } catch (System.Threading.ThreadAbortException) { // no-op } catch (Exception ex) { Logger.LogError(ex); Response.Write(“Error”); Response.End(); } Response.BufferOutput = true; Response.ClearHeaders(); Response.ContentType = “application/pdf”; if (true) { Response.AddHeader(“Content-Disposition”, “attachment; filename=” + (string.IsNullOrEmpty(DownloadFileName) ? […]