After boxTemplate.Ellipse(1, 1, bubbleX - 1, bubbleY - 1) call
boxTemplate.Stroke() to close the path.
Unrelated to this call localMemoryStream.ToArray() instead of
localMemoryStream.GetBuffer() or you'll get more bytes than the real lenght.
Paulo
----- Original Message -----
From: karsep5
To: [email protected]
Sent: Friday, November 19, 2010 11:56 PM
Subject: [iText-questions] Issue with opening Pdf in Acrobat 7
The following piece of code is supposed to take an existing pdf and add a
bubble with a text in it. It works correctly when opening in Adode Reader 8 and
9. But in Reader 7, it throws "Error while parsing a Form, Type 3 font, or
Pattern". The code in bold is causing the issue but i dont know how to fix it.
using System; using System.Collections.Generic; using System.Linq; using
System.Text; using iTextSharp.text.pdf; using iTextSharp.text; using System.IO;
namespace ITextPdfCheck { class Program { private static Image
_GetBubbleImage(PdfContentByte cb, Font font, string label, float bubbleX,
float bubbleY) { PdfTemplate boxTemplate = cb.CreateTemplate(bubbleX, bubbleY);
boxTemplate.SetLineWidth(1); boxTemplate.Ellipse(1, 1, bubbleX - 1, bubbleY -
1); if (!String.IsNullOrEmpty(label)) { boxTemplate.BeginText();
boxTemplate.SetTextRise(bubbleX / 5.0F);
boxTemplate.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE);
boxTemplate.SetFontAndSize(font.BaseFont, 8); float textWidth =
boxTemplate.GetEffectiveStringWidth(label, false);
boxTemplate.MoveText((bubbleX - textWidth) / 2, 0);
boxTemplate.ShowText(label); boxTemplate.EndText(); boxTemplate.Stroke(); }
else { boxTemplate.Fill(); } return Image.GetInstance(boxTemplate); } internal
static PdfPCell CreateBubblePdfCell(PdfContentByte contentByte, string
cellContent, string tagName, float bubbleX, float bubbleY, Font font, int
border) { Image bubbleImage = _GetBubbleImage(contentByte, font, cellContent,
bubbleX, bubbleY); Chunk imageChunk = new Chunk(bubbleImage, 0, 0); if
(!String.IsNullOrEmpty(tagName)) { imageChunk.SetGenericTag(tagName); }
PdfPCell bubbleCell = new PdfPCell(new Phrase(imageChunk)) { Border = border,
Padding = 0, BackgroundColor = BaseColor.WHITE, HorizontalAlignment =
Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_TOP }; return
bubbleCell; } private static PdfTemplate _GetBubbleTemplate(Font _Font,
PdfContentByte cb, string label, int bubbleX, int bubbleY, string tagName) {
PdfTemplate pdfTemplate = cb.CreateTemplate(bubbleX + 2, bubbleY + 2);
PdfPTable pdfPTable = new PdfPTable(1); pdfPTable.SetTotalWidth(new float[] {
bubbleX }); PdfPCell pdfPCell = CreateBubblePdfCell(cb, label, tagName,
bubbleX, bubbleY, _Font, 0); pdfPTable.AddCell(pdfPCell);
pdfPTable.WriteSelectedRows(0, -1, 0, pdfPTable.TotalHeight, pdfTemplate);
return pdfTemplate; } static void Main(string[] args) { Document document = new
Document(); Font _Font = FontFactory.GetFont(FontFactory.HELVETICA); try {
using (MemoryStream localMemoryStream = new MemoryStream()) { PdfReader
pdfReader = new PdfReader(File.ReadAllBytes(@"test.pdf")); PdfWriter pdfWriter
= PdfWriter.GetInstance(document, localMemoryStream); document.Open();
PdfImportedPage pdfImportedPage = pdfWriter.GetImportedPage(pdfReader, 1);
PdfContentByte cb = pdfWriter.DirectContent; cb.AddTemplate(pdfImportedPage, 0,
0); cb.AddTemplate(_GetBubbleTemplate(_Font, cb, "A", 20, 20, ""), 101, 101);
pdfReader.Close(); document.Close(); File.WriteAllBytes(@"test1.pdf",
localMemoryStream.GetBuffer()); } } catch (Exception ex) {
Console.WriteLine(ex); } document.Close(); } } }
------------------------------------------------------------------------------
View this message in context: Issue with opening Pdf in Acrobat 7
Sent from the iText - General mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php