Tag: itextsharp

C#iTextSharp单个单元格中的多种字体

首先,我对C#并不是那么好,自从我使用它以来已经有一段时间了。 我正在为一个提供包裹的朋友制作一个Windows窗体。 因此,我想将他当前的论文表格转换为带有iTextSharp库的.pdf。 他仍然需要打印表单以获得客户签名等。 我需要的是:我希望表格有一个标题,“公司名称”例如,文本应该比从Windows窗体输入的文本小一点(richTextBox1) 目前我正在使用单元格,并想知道我是否可以在同一个单元格中使用2种不同的字体大小? 是)我有的: table.AddCell(“Static headline” + Chunk.NEWLINE + richTextBox1.Text); 我想要的是”: var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 9); var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12); table.AddCell(“Static headline”, boldFont + Chunk.NEWLINE + richTextBox1.Text, normalFont);

如何为每个页面添加图像背景为pdf?

我正在尝试设置pdf的背景并设法用图像设置我的pdf有一个大表,所以页面是自动添加的而不是Document.NewPage()方法所以图像背景只设置在第一个页。 这是添加背景的代码: Image backImg = Image.GetInstance(@”D:\websites\DIS\bugs\130208\A4.png”); backImg.SetAbsolutePosition(0, 0); backImg.Alignment = Image.UNDERLYING; var doc = new Document(pageSize); PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create)); doc.Open(); doc.Add(backImg); … creating a big table 而不是使用doc.NewPage()方法。 在关闭文档之前,我是否必须循环抛出每个页面并在结尾添加背景图像,但是如何将其放在后台而不是其他元素之上?

itextsharp修改现有的pdf(没有新的源代码pdf)并添加水印

我想修改现有的pdf文档并添加水印图像。 如何在不创建新文件的情况下执行此操作? 我认为创建临时pdf是一个愚蠢的解决方案。 删除源文件并重命名temp pdf,如源文件!? 这是我的示例代码,但我在那里创建一个新的目标文件。 问候 private static void PdfApplication(String filePath) { PdfReader pdfReader = new PdfReader(filePath); Stream outputStream = new FileStream(newFilePath, FileMode.Open, FileAccess.Write, FileShare.None); PdfStamper pdfStamper = new PdfStamper(pdfReader, outputStream,’1′, true); for (int pageIndex = 1; pageIndex <= pdfReader.NumberOfPages; pageIndex++) { pdfStamper.FormFlattening = false; iTextSharp.text.Rectangle pageRectangle = pdfReader.GetPageSizeWithRotation(pageIndex); PdfContentByte pdfData = pdfStamper.GetOverContent(pageIndex); pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, […]

itext ColumnText忽略对齐

我试图在左侧获得一些文本行,在右侧获取一些文本。 出于某种原因,iText似乎完全忽略了对齐。 例: // create 200×100 column ct = new ColumnText(writer.DirectContent); ct.SetSimpleColumn(0, 0, 200, 100); ct.AddElement(new Paragraph(“entry1”)); ct.AddElement(new Paragraph(“entry2”)); ct.AddElement(new Paragraph(“entry3”)); ret = ct.Go(); ct.SetSimpleColumn(0, 0, 200, 100); ct.Alignment = Element.ALIGN_RIGHT; ct.AddElement(new Paragraph(“entry4”)); ct.AddElement(new Paragraph(“entry5”)); ct.AddElement(new Paragraph(“entry6”)); ret = ct.Go(); 我已将第二列的对齐方式设置为Element.ALIGN_RIGHT,但文本显示在第一列的顶部,从而呈现不可读的文本。 对齐仍然设置为左。 有任何想法吗?

Html到pdf一些字符丢失(itextsharp)

我想使用itextsharp库将gridview导出为pdf。 问题是在pdf文档中缺少一些土耳其字符,如İ,ı,Ş,ş等。 用于导出pdf的代码是: protected void LinkButtonPdf_Click(object sender, EventArgs e) { Response.ContentType = “application/pdf”; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.AddHeader(“content-disposition”, “attachment;filename=FileName.pdf”); Response.Cache.SetCacheability(HttpCacheability.NoCache); System.IO.StringWriter stringWrite = new StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView1.RenderControl(htmlWrite); StringReader reader = new StringReader(textConvert(stringWrite.ToString())); Document doc = new Document(PageSize.A4); HTMLWorker parser = new HTMLWorker(doc); PdfWriter.GetInstance(doc, Response.OutputStream); doc.Open(); parser.Parse(reader); doc.Close(); } public static string textConvert(string […]

使用iTextSharp或类似方法生成和设计PDF

tl; dr:基本上我只是想知道设计PDF文档的最佳/最简单方法是什么? 使用带代码的iTextSharp实际设计整个PDF文档是远程合法的(即不加载外部文件)? 我希望最终结果看起来类似于具有各种颜色,边框,图像和所有内容的网页。 或者您是否必须依赖其他文档,如.doc,.html文件来实现良好的设计? 最初我认为我会使用HTML标记来生成PDF,但是看到样式/ CSS的支持看起来有多糟糕,所以我要重新考虑整个情况。 这让我想到,为什么甚至使用HTML标记或.doc(x)文件来创建PDF设计,当我可以在PDF中正确地执行它而不必依赖于没有任何实际用途的各种文件。 我开始查看本指南(它是几个部分) http://www.c-sharpcorner.com/uploadfile/f2e803/basic-pdf-creation-using-itextsharp-part-i/ 指南的一部分: using (MemoryStream ms = new MemoryStream()) { Document document = new Document(PageSize.A4, 25, 25, 30, 30); PdfWriter writer = PdfWriter.GetInstance(document, ms); document.Open(); document.Add(new Paragraph(“Hello World”)); document.Close(); writer.Close(); Response.ContentType = “pdf/application”; Response.AddHeader(“content-disposition”, “attachment;filename=First PDF document.pdf”); Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); } 并获得了关于生成PDF并设计它们的基本知识。 但是有可能以这种方式生成和设计大型PDF文档,并且有更多适当的指南或类似的所有各种命令来生成文本,图像,边框和所有内容,因为我没有关于使用代码生成PDF的真实线索。

如何在现有PDF中嵌入字体?

背景: 我有PDF,我是以编程方式生成的。 我需要能够从服务器(而不是通过中间应用程序)将PDF直接发送到打印机。 目前我可以完成以上所有操作(生成PDF,发送到打印机),但由于字体未嵌入PDF中,因此打印机正在进行字体替换。 生成时为什么不嵌入字体: 我正在使用SQL Reporting Services 2008创建PDF .SQL Reporting Services存在一个已知问题,即它不会嵌入字体(除非满足一系列要求 – http://technet.microsoft.com/en-us/library /ms159713%28SQL.100%29.aspx )。 不要问我为什么,PDF符合MS列出的所有要求,并且字体仍然显示为未嵌入 – 没有真正控制字体是否嵌入,所以我已经接受这不起作用并继续前进。 Microsoft建议的解决方法( http://blogs.msdn.com/b/donovans/archive/2007/07/20/reporting-services-pdf-renderer-faq.aspx “何时将使用Reporting Services进行字体嵌入”)是发布处理PDF以手动嵌入字体。 目标获取已生成的PDF文档,以编程方式“打开”它并嵌入字体,重新保存PDF。 方法我指向iTextSharp,但大多数示例都是针对Java版本的,我在转换到iTextSharp版本时遇到问题(我找不到iTextSharp的任何文档)。 我正在撰写这篇文章以了解我需要做的事情: Itext将字体嵌入PDF中 。 但是对于我的生活,我似乎无法使用ByteArrayOutputStream对象。 它似乎无法找到它。 我已经研究过并且研究过但似乎没有人说出它在哪个类或我找到它的位置所以我可以将它包含在using语句中。 我甚至破解了开放的Reflector,似乎无法在任何地方找到它。 这是我到目前为止,它编译等等。(结果是我生成的PDF的字节[])。 PdfReader pdf = new PdfReader(result); BaseFont unicode = BaseFont.CreateFont(“Georgia”, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); // the next line doesn’t work as I need a ByteArrayOutputStream […]

使用iTextSharp将图像添加到PDF并正确缩放

这是我的代码。 它正确添加了我想要的图片, 除了图像使用原始分辨率外 ,一切正常,因此如果图像很大,则会裁剪它以适应页面。 有没有办法让图片像缩放function一样使用拉伸以适应,还能保持宽高比? 我必须在那里找到一些东西。 :P 这是一张图片来说明问题: using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; using System.Drawing; using System.Collections.Generic; namespace WinformsPlayground { public class PDFWrapper { public void CreatePDF(List images) { if (images.Count >= 1) { Document document = new Document(PageSize.LETTER); try { // step 2: // we create a writer that listens to […]

使用iTextSharp(不是AcroFields)替换PDF文件中的文本

我正在使用asp.net C#创建iTextSharp来创建PDF文件。 我使用iTextSharp创建了许多报告(pdfs)并且一切正常。 现在我的客户端给了我预先格式化的pdf文件,其中有一些文本需要用数据库值替换。 现在我想替换现有pdf文件中的文本并创建新文本。 但是当我用谷歌搜索时,在iTextSharp中是不可能的。 我现在有一些问题是否真的不可能使用iTextSharp替换pdf中的文本? 是否有其他图书馆或第三方工具(免费无需许可证)这样做? 如果是的话,请给我一些建议。 对于您的信息,我没有PDF文件中的AcroFields,也听说过ASPOSE – PDF文件格式API(不是免费的)。

将iTextSharp PDF作为内存流返回会导致StreamNotSupported

我正在使用iTextSharp中的PdfStamper创建一个PDF文件,并将PDF作为内存流对象返回到调用函数,然后用于在WinForms的Teleriks PDF Viewer Component中显示PDF。 这是目标。 现在,创建PDF可以正常工作,并将数据返回给Calling函数,在Calling函数中,我应该将memorystream内容写入文件流,然后在Adobe Reader中打开它看起来很好。 但是,如果我选择在PDF查看器控件中显示PDF,我只会收到“不支持的流类型”错误。 现在,我发现PDF数据有问题所以我决定创建PDF文件,将其保存到磁盘,然后在调用函数中将其读取到内存流,并在PDF查看器中显示该内存流,对于某些人来说不明原因,作品…. 我真的无法理解这一点并需要一些帮助。 所以,这不起作用: //The Calling function private void dlgViewPDF_Load(object sender, EventArgs e) { MemoryStream ms = PDFcreator.GeneratePDFdata(id); rPdfView.LoadDocument(ms); } //The PDF generator public static MemoryStream GeneratePDFdata(string id) { MemoryStream ms = new MemoryStream(); string sTemplate = string.Concat(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), “\\template.pdf”); PdfReader pdfReader = new PdfReader(sTemplate); PdfStamper pdfStamper = new […]