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

Reply via email to