Tag: pdfstamper

如何将PdfPTable插入现有的PDF模板?

更新: 经过一番讨论,我们决定选择TeX,特别是兼容Windows的MiKTeX 。 我们意识到即使我们可以通过微观管理布局(这似乎不可能或者像计算每行的行高一样繁琐)来获得动态加长表,还有其他动态控件,如大文本框,我们也会需要微观管理,所以我们决定动态生成整个文档。 考虑到这一点,去TeX是显而易见的选择,因为它的力量和我们之前的经验,现在一周之后,我很高兴我们这样做,因为我们的所有报告都是动态生成的,而且背后的代码是干净的最小的。 原版的: 我有一个使用LiveCycle生成的pdf表单模板,我想填写它(pdfstamper)并添加一些表(pdfptable),但事实certificate它比我最初的想法更难。 我打开pdf并使用pdfstamper编辑静态字段: using (var outputPDF1 = new MemoryStream()) { var pdfReader = new PdfReader(pdf); var pdfStamper = new PdfStamper(pdfReader, outputPDF1); var pdfFields = pdfStamper.AcroFields; pdfFields.SetField(“Field1”, “Value1”); 这是直截了当的。 然后我尝试添加一个表,该表将从几个页面上的设置位置开始。 这里有一个尝试3岁,有一个更老版本的itextsharp,它是非常手动的。 该代码的关键是使用GetOverContent插入ColumnText与生成的表,但这需要知道表高度并手动切割表大小 var cb = pdfStamper.GetOverContent(1); var ct = new ColumnText(cb); ct.Alignment = Element.ALIGN_CENTER; ct.SetSimpleColumn(36, 36, PageSize.A4.Width-36, PageSize.A4.Height-300); ct.AddElement(table); ct.Go(); 还有另一个答案Itextsharp:在一页上调整2个元素,仅限于一个页面表。 […]

使用itextsharp将多个图像转换为多个页面PDF

我需要使用模板 将图像转换为PDF 。 我可以使用itextsharp创建一个页面PDF。 假设1图像为1页PDF 。 当我有多个图像时会出现问题。 如何使用预定义模板创建多个页面PDF。 以下是我的代码: public static string CreatePDFDocument(string docname, string imagePath, string mediaField) { PdfReader pdfReader = null; string pdfPortrait = ConfigurationManager.AppSettings[“PdfPortraitTemplate”]; string pdfLandscape = ConfigurationManager.AppSettings[“PdfLandscapeTemplate”]; iTextSharp.text.Image instanceImg = iTextSharp.text.Image.GetInstance(imagePath); string filename = ConfigurationManager.AppSettings[“LocalFolder”] + docname + “.pdf”; FileStream pdfOutputFile = new FileStream(filename, FileMode.Create); if (instanceImg.ScaledHeight >= instanceImg.ScaledWidth) { pdfReader […]

无法访问该文件,因为它正由另一个进程使用

我的web方法在我的%temp%文件夹中创建一个pdf文件,该文件有效。 然后我想使用下面的代码向该文件添加一些自定义字段(meta)。 PdfStamper类生成一个IOException ,无论我使用它的.Close()方法还是using块结束。 仍然保留文件句柄的过程是webdev Web服务器本身(我在VS2010 SP1中进行调试)。 private string AddCustomMetaData(string guid, int companyID, string filePath) { try { PdfReader reader = new PdfReader(filePath); using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) { PdfStamper st = new PdfStamper(reader, fs); Dictionary info = reader.Info; info.Add(“Guid”, guid); info.Add(“CompanyID”, companyID.ToString()); st.MoreInfo = info; st.Close(); } reader.Close(); return guid; […]