// --------------------------------------------------------------------------- /** Implementation of the cellLayout method. */ public void CellLayout( PdfPCell cell, Rectangle position, PdfContentByte[] canvases) { writer.DirectContent.LocalDestination( name, new PdfDestination(PdfDestination.FITH, position.Top) ); }
public void CellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].PdfWriter; TextField text = new TextField( writer, rectangle, FieldName ?? AddBase64Image.NAME ); PdfFormField field = text.GetTextField(); writer.AddAnnotation(field); }
public void Ellipse(PdfContentByte content, Rectangle rect) { content.SaveState(); content.SetRGBColorFill(0x00, 0x00, 0xFF); content.Ellipse( rect.Left - 3f, rect.Bottom - 5f, rect.Right + 3f, rect.Top + 3f ); content.Fill(); content.RestoreState(); }
public static float[] GetRelativeColumns(Rectangle format) { float[] relativeWidths; if (format == PageSize.A4) { relativeWidths = new float[] { 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F, 35.09F }; } else { relativeWidths = new float[] {}; } return relativeWidths; }
public override void OnEndPage(PdfWriter writer, Document document) { base.OnEndPage(writer, document); float effectiveStrWidthFirstPart = 0.0f; int pageN = writer.PageNumber; String text = "Page " + pageN.ToString() + " of "; Console.WriteLine("###-->> OnEndPageText = " + text); float len = 10.5f; iTextSharp.text.Rectangle pageSize = document.PageSize; cb.SetRGBColorFill(100, 100, 100); cb.BeginText(); cb.SetFontAndSize(BaseFont.CreateFont(), 10.5f); cb.SetTextMatrix(document.LeftMargin, pageSize.GetBottom(document.BottomMargin - 10)); cb.ShowText(text); effectiveStrWidthFirstPart = cb.GetEffectiveStringWidth(text, true); Console.WriteLine("###-->> Effective Str Width (first part) = " + effectiveStrWidthFirstPart); cb.EndText(); cb.AddTemplate(template, document.LeftMargin + len, pageSize.GetBottom(document.BottomMargin - 10)); }
public byte[] JobsReport(User receiver, IEnumerable <Job> jobs) { var pageSize = new iTextSharp.text.Rectangle(PageSize.A4.Width, PageSize.A4.Height); var doc = new Document(pageSize, 45, 25, 50, 10); byte[] byteArray; using (var ms = new MemoryStream()) { var pw = PdfWriter.GetInstance(doc, ms); doc.Open(); doc.Add(WriteDocumentTitle(receiver)); { var jobNumber = 1; foreach (var job in jobs) { WriteJobInfo(doc, job, jobNumber); ++jobNumber; } } doc.Close(); byteArray = ms.ToArray(); ms.Flush(); ms.Close(); } //Response.Clear(); //Response.AddHeader("Content-Disposition", "attachment; filename=myfile.pdf"); //Response.AddHeader("Content-Length", byteArray.Length.ToString()); //Response.ContentType = "application/octet-stream"; //Response.BinaryWrite(byteArray); return(byteArray); }
public bool SetWatermarkByImage(string inputfilepath, string outputfilepath, string ModelPicName, float top, float left, string userPassWord, string ownerPassWord, int permission, bool HasCover = false) { PdfReader pdfReader = null; PdfStamper pdfStamper = null; try { pdfReader = new PdfReader(inputfilepath); int numberOfPages = pdfReader.NumberOfPages; iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1); float width = psize.Width; float height = psize.Height; pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create)); pdfStamper.SetEncryption(false, userPassWord, ownerPassWord, permission); PdfContentByte waterMarkContent; iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(ModelPicName); image.GrayFill = 20; if (left < 0) { left = width / 2 - image.Width + left; } image.SetAbsolutePosition(left, (height / 2 - image.Height) - top); for (int i = 1; i <= numberOfPages; i++) { if (HasCover && i == 1) { continue; } waterMarkContent = pdfStamper.GetOverContent(i); waterMarkContent.AddImage(image); } return(true); } catch (Exception ex) { throw ex; } finally { if (pdfStamper != null) { pdfStamper.Close(); } if (pdfReader != null) { pdfReader.Close(); } } }
public void ImageDirect(string savename, List <clsFileNanme_info> FilelistResult) { string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"Image\1.jpg"; //临时文件路径 string fileName = string.Empty; { fileName = savename; Document document = new Document(); iTextSharp.text.Rectangle page = PageSize.A4; float y = page.Height; document = new Document(page, 15, 15, 30, 30); float docWidth = page.Width - 15 * 2; float docHeight = page.Height - document.BottomMargin - document.TopMargin; PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); document.Open(); foreach (clsFileNanme_info item in FilelistResult) { iTextSharp.text.Image img1 = iTextSharp.text.Image.GetInstance(item.Filpath); float widthSzie = (page.Width - 30) / img1.Width; if (widthSzie < 1) { img1.ScalePercent(widthSzie * 100); } document.Add(img1); } document.Close(); } }
// =========================================================================== public override void Write(Stream stream) { float w = PageSize.A4.Width; float h = PageSize.A4.Height; Rectangle rect = new Rectangle(-2*w, -2*h, 2*w, 2*h); Rectangle crop = new Rectangle(-2 * w, h, -w, 2 * h); // step 1 using (Document document = new Document(rect)) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, stream); writer.CropBoxSize = crop; // step 3 document.Open(); // step 4 PdfContentByte content = writer.DirectContent; PdfTemplate template = CreateTemplate(content, rect, 4); float adjust; while(true) { content.AddTemplate(template, -2*w, -2*h); adjust = crop.Right + w; if (adjust > 2 * w) { adjust = crop.Bottom - h; if (adjust < - 2 * h) break; crop = new Rectangle(-2*w, adjust, -w, crop.Bottom); } else { crop = new Rectangle(crop.Right, crop.Bottom, adjust, crop.Top); } writer.CropBoxSize = crop; document.NewPage(); } } }
private void btnPrintLabel_Click(object sender, EventArgs e) { BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false); iTextSharp.text.Font times = new iTextSharp.text.Font(bfTimes, 9); var pgSize = new iTextSharp.text.Rectangle(300, 100); var doc = new iTextSharp.text.Document(pgSize, 10, 5, 5, 0); PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("Label.pdf", FileMode.Create)); name = lblLastName.Text + ", " + lblFirstName.Text; id = " (" + patientId + ")"; dob = "\nD.O.B: " + lblDOB.Text; sex = " Sex: " + lblGender.Text; hc = "\nHCN: " + lblInsNo.Text; address = "\nAddress: " + lblAddress.Text.ToUpper() + "\n" + lblCity.Text.ToUpper() + ", " + lblProvince.Text.ToUpper() + ", " + lblPostalCode.Text.ToUpper(); phone = "\nPhone Number: " + lblPhone.Text; string par = name + id + dob + sex + hc + address + phone; Paragraph paragraph = new Paragraph(par, times); doc.Open(); doc.Add(paragraph); //iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance("health-care-shield-icon.png"); //png.ScalePercent(20f); //png.SetAbsolutePosition(doc.PageSize.Width - 17f - 50f, doc.PageSize.Height - 38f - 38f); //doc.Add(png); doc.Close(); System.Diagnostics.Process.Start("Label.pdf"); }
private void Form1_Load(object sender, EventArgs e) { iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 1000f); pageSize.BackgroundColor = BaseColor.BLUE; Document doc = new Document(pageSize, 72, 72, 144, 144); // Document doc = new Document(PageSize.LETTER); // Document doc = new Document(PageSize.LETTER.Rotate()); PdfWriter.GetInstance(doc, new FileStream(@"HelloWorld.pdf", FileMode.Create)); doc.AddTitle("Hello world example"); doc.AddSubject("This example shows how to add metadata"); doc.AddKeywords("Metadata, iText, step 3, tutorial"); doc.AddCreator("My program using iText"); doc.AddAuthor("Bruno Lowagie"); doc.AddHeader("Expires", "0"); doc.Open(); doc.Add(new Paragraph("Hello World")); doc.Close(); string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); webBrowser1.Navigate(string.Concat(appPath, "\\", @"HelloWorld.pdf")); }
public bool GraphConvertPdf(string savename,string savepath,string basepath,string basetype) { bool flag = true; Document doc = new Document(); savename = PdfClass.PdfFileNameConverter(savename); try { PdfWriter.GetInstance(doc, new FileStream(@savepath + "\\" + savename + ".pdf", FileMode.Create)); doc.Open(); int max = Directory.GetFiles(@basepath).Count(); for (int i = 0; i < max; i++) { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(new Uri(@basepath + "\\" + i.ToString() + "." + basetype)); iTextSharp.text.Rectangle pagesize = new iTextSharp.text.Rectangle(image.Width / image.DpiX * 25.4f * 2.834f, image.Height / image.DpiY * 25.4f * 2.834f); doc.SetPageSize(pagesize); image.ScaleToFit(doc.PageSize.Width, doc.PageSize.Height); image.SetAbsolutePosition(0f, 0f); doc.NewPage(); doc.Add(image); } doc.Close(); } catch { flag = false; } return flag; }
public void ImgTransPDF(List <string> imgList, string afterPath) { List <string> imageList = imgList; //生成PDF路径 string fileName = string.Empty; fileName = afterPath; //width:794px;height:1090px iTextSharp.text.Rectangle page = new iTextSharp.text.Rectangle(0f, 0f); Document document = new Document(page, 1f, 1f, 1f, 1f); //设置纸张横向 //document.SetPageSize(page.Rotate()); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); for (int i = 0; i < imageList.Count; i++) { document.Open(); iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imageList[i]); img.ScaleAbsolute(460f, 700f); //图片居中 img.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN; //图片绝对定位 img.SetAbsolutePosition(55, 30); //图片打印到PDF writer.DirectContent.AddImage(img); document.NewPage(); } document.Close(); }
/// <summary> /// Draws a rectangular gradient background color. /// </summary> /// <param name="pdfRowType">Main table's row types</param> /// <param name="sharedData">PdfCells Shared Data</param> /// <param name="position">The coordinates of the cell</param> /// <param name="canvases">An array of PdfContentByte to add text or graphics</param> public static void ApplyGradientBackground(RowType pdfRowType, CellSharedData sharedData, Rectangle position, PdfContentByte[] canvases) { BaseColor startColor = null; BaseColor endColor = null; switch (pdfRowType) { case RowType.HeaderRow: if (sharedData.Template.HeaderBackgroundColor.Count < 2) return; startColor = sharedData.Template.HeaderBackgroundColor[0]; endColor = sharedData.Template.HeaderBackgroundColor[1]; break; case RowType.PreviousPageSummaryRow: if (sharedData.Template.PreviousPageSummaryRowBackgroundColor.Count < 2) return; startColor = sharedData.Template.PreviousPageSummaryRowBackgroundColor[0]; endColor = sharedData.Template.PreviousPageSummaryRowBackgroundColor[1]; break; case RowType.SummaryRow: case RowType.AllGroupsSummaryRow: if (sharedData.Template.SummaryRowBackgroundColor.Count < 2) return; startColor = sharedData.Template.SummaryRowBackgroundColor[0]; endColor = sharedData.Template.SummaryRowBackgroundColor[1]; break; case RowType.PageSummaryRow: if (sharedData.Template.PageSummaryRowBackgroundColor.Count < 2) return; startColor = sharedData.Template.PageSummaryRowBackgroundColor[0]; endColor = sharedData.Template.PageSummaryRowBackgroundColor[1]; break; } DrawGradientBackground(position, canvases, startColor, endColor); }
public void TestPdf2() { string fileTemplate = Path.Combine(CommonHelper.MapPath("~/Documents/Templates"), ProductQuoteApp.Resources.Resources.FileNamePdfProductQuoteTemplate); string fileNameExport = string.Format("productQuote_{0}_{1}.pdf", 1, Guid.NewGuid().ToString()); string fileExport = Path.Combine(CommonHelper.MapPath("~/Documents/Export"), fileNameExport); PdfReader reader = new PdfReader(fileTemplate); FileStream fs = new FileStream(fileExport, FileMode.Create, FileAccess.Write); iTextSharp.text.Rectangle size = reader.GetPageSizeWithRotation(1); Document document = new Document(size); PdfCopy copy = new PdfCopy(document, fs); document.Open(); PdfImportedPage page = null; for (int i = 1; i <= reader.NumberOfPages; i++) { page = copy.GetImportedPage(reader, i); copy.AddPage(page); } document.Close(); reader.Close(); ///////////////////////////////////////////////////////////////////////////////////////////////////////// FileStream fs2 = new FileStream(fileExport, FileMode.OpenOrCreate, FileAccess.Write); Document document2 = new Document(size); PdfWriter writer = PdfWriter.GetInstance(document2, fs2); document2.Open(); PdfContentByte cb = writer.DirectContent; BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.SetColorFill(BaseColor.BLACK); cb.SetFontAndSize(bf, 9); string text = ""; cb.BeginText(); //text = "Buenos Aires, 15 de septiembre de 2017"; text = "PRUEBA PRUEBA PRUEBA PRUEBA "; cb.ShowTextAligned(Element.ALIGN_RIGHT, text, 0, 0, 0); cb.EndText(); //cb.AddTemplate(page, 0, 0); document2.Close(); fs2.Close(); writer.Close(); ///////////////////////////////////////////////////////////////////////////////////////////////////////// }
private void SaveBitmaps(Document pdfDocument, iTextSharp.text.Rectangle pdfPageSize, List <Bitmap> bitMaps) { int pageCount = bitMaps.Count; for (int i = 0; i < pageCount; i++) { System.Drawing.Image bitImg = (System.Drawing.Image)bitMaps[i]; iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitImg, BaseColor.WHITE); if (img.ScaledWidth > pdfPageSize.Width || img.ScaledHeight > pdfPageSize.Height) { if (img.DpiX != 0 && img.DpiY != 0 && img.DpiX != img.DpiY) { img.ScalePercent(100f); float percentX = (pdfPageSize.Width * 100) / img.ScaledWidth; float percentY = (pdfPageSize.Height * 100) / img.ScaledHeight; img.ScalePercent(percentX, percentY); img.WidthPercentage = 0; } else { img.ScaleToFit(pdfPageSize.Width, pdfPageSize.Height); } } iTextSharp.text.Rectangle pageRect = new iTextSharp.text.Rectangle(0, 0, img.ScaledWidth, img.ScaledHeight); pdfDocument.SetPageSize(pageRect); pdfDocument.SetMargins(0, 0, 0, 0); pdfDocument.NewPage(); pdfDocument.Add(img); } }
/** * @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout( * com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, * com.lowagie.text.pdf.PdfContentByte[]) */ public void CellLayout( PdfPCell cell, Rectangle rect, PdfContentByte[] canvas ) { PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS]; cb.SaveState(); if (duration < 90) { cb.SetRGBColorFill(0x7C, 0xFC, 0x00); } else if (duration > 120) { cb.SetRGBColorFill(0x8B, 0x00, 0x00); } else { cb.SetRGBColorFill(0xFF, 0xA5, 0x00); } cb.Rectangle( rect.Left, rect.Bottom, rect.Width * duration / 240, rect.Height ); cb.Fill(); cb.RestoreState(); }
public void Image(List <string> files, string outputPdfPath) { foreach (string filePatch in files) { iTextSharp.text.Rectangle pageSize = null; using (var srcImage = new Bitmap(filePatch)) { pageSize = new iTextSharp.text.Rectangle(0, 0, srcImage.Width, srcImage.Height); } using (var ms = new MemoryStream()) { var document = new Document(pageSize, 0, 0, 0, 0); PdfWriter.GetInstance(document, ms).SetFullCompression(); document.Open(); var image = iTextSharp.text.Image.GetInstance(filePatch); document.Add(image); document.Close(); var fileName = Path.GetFileNameWithoutExtension(filePatch); File.WriteAllBytes($"{outputPdfPath}{fileName}.pdf", ms.ToArray()); } } }
private void CreateBorder(PdfContentByte cb, PdfWriter writer, Document doc) { iTextSharp.text.Rectangle r = doc.PageSize; float left = r.Left + 30; float right = r.Right - 30; float top = r.Top - 30; float bottom = r.Bottom + 30; float width = right - left; float height = top - bottom; PdfPTable tab = new PdfPTable(1); tab.TotalWidth = width; tab.LockedWidth = true; PdfPCell t = new PdfPCell(new Phrase(String.Empty)); t.BackgroundColor = new BaseColor(250, 235, 215); t.FixedHeight = height; t.BorderWidth = 3; tab.AddCell(t); Paragraph pa = new Paragraph(); pa.Add(tab); float h = tab.TotalHeight; PdfTemplate temp = cb.CreateTemplate(tab.TotalWidth, h); tab.WriteSelectedRows(0, -1, 0.0F, h, temp); iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(temp); img.SetAbsolutePosition(30, 30); cb.AddImage(img); }
public void Guardar(Chart chart1 ) { pag++; var chartimage = new MemoryStream(); chart1.SaveImage(chartimage, ChartImageFormat.Png); iTextSharp.text.Image Chart_image = iTextSharp.text.Image.GetInstance(chartimage.GetBuffer()); // Chart_image.ScalePercent(98.6f); // iTextSharp.text.Image Chart_image = iTextSharp.text.Image.GetInstance(chartimage);// 'Dirreccion a la imagen que se hace referencia Chart_image.SetAbsolutePosition(x,y);// 'Posicion en el eje cartesiano Chart_image.ScaleAbsoluteWidth(270);// 'Ancho de la imagen Chart_image.ScaleAbsoluteHeight(160);// 'Altura de la imagen doc.Add(Chart_image);// ' Agrega la imagen al documento if (pag ==8) { doc.NewPage(); iTextSharp.text.Rectangle pageType = iTextSharp.text.PageSize.A4; PdfContentByte cb = writer.DirectContent; cb.MoveTo(marginLeft, marginTop); cb.LineTo(1, marginTop); cb.Stroke(); /* */ x = 10; y = 600; pag = 0;cont = 0; } }
private static MemoryStream SetWaterMark(MemoryStream ms, string filePath, string waterMarkName, string waterMarkAddr = null) { MemoryStream msWater = new MemoryStream(); PdfReader pdfReader = null; PdfStamper pdfStamper = null; try { pdfReader = new PdfReader(filePath); pdfStamper = new PdfStamper(pdfReader, msWater); int total = pdfReader.NumberOfPages + 1; //获取PDF的总页数 iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1); //获取第一页 float width = psize.Width; //PDF页面的宽度,用于计算水印倾斜 float height = psize.Height; PdfContentByte waterContent; BaseFont basefont = BaseFont.CreateFont(@"C://Windows/Fonts/simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); PdfGState gs = new PdfGState(); for (int i = 1; i < total; i++) { waterContent = pdfStamper.GetOverContent(i); //在内容上方加水印 //透明度 waterContent.SetGState(gs); //开始写入文本 waterContent.BeginText(); //waterContent.SetColorFill(BaseColor.RED); waterContent.SetFontAndSize(basefont, 18); waterContent.SetTextMatrix(0, 0); if (waterMarkAddr == null || waterMarkAddr == "") { waterContent.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2, height / 2, 55); } else { waterContent.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2, height / 2 + 100, 55); waterContent.ShowTextAligned(Element.ALIGN_CENTER, waterMarkAddr, width / 2, height / 2 - 100, 55); } waterContent.EndText(); } } catch (Exception) { return(ms); } finally { if (pdfStamper != null) { pdfStamper.Close(); } if (pdfReader != null) { pdfReader.Close(); } } return(msWater); }
public DigitalDocSync(string OutputFile) { outputFile = OutputFile; reader = new PdfReader(outputFile); rectPage = reader.GetPageSize(1); reader.Close(); }
public TextChunk(String str, Vector startLocation, Vector endLocation, float charSpaceWidth, iTextSharp.text.Rectangle rect) { this.text = str; this.startLocation = startLocation; this.endLocation = endLocation; this.charSpaceWidth = charSpaceWidth; this.rectangle = rect; Vector oVector = endLocation.Subtract(startLocation); if (oVector.Length == 0) { oVector = new Vector(1, 0, 0); } orientationVector = oVector.Normalize(); orientationMagnitude = (int)(Math.Atan2(orientationVector[Vector.I2], orientationVector[Vector.I1]) * 1000); // see http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html // the two vectors we are crossing are in the same plane, so the result will be purely // in the z-axis (out of plane) direction, so we just take the I3 component of the result Vector origin = new Vector(0, 0, 1); distPerpendicular = (int)(startLocation.Subtract(origin)).Cross(orientationVector)[Vector.I3]; distParallelStart = orientationVector.Dot(startLocation); distParallelEnd = orientationVector.Dot(endLocation); }
/// <summary> /// Save a pdf file in "../../test.pdf". /// </summary> /// <param name="deals">Expect Collection of objects that have Name, Address, ProductName and formula.</param> public void GenerateReport(IEnumerable<PdfReportModel> deals) { FileStream fileStream = new FileStream(ReportsPath, FileMode.Create, FileAccess.Write, FileShare.None); Rectangle pageSize = new Rectangle(PageSize.A4); Document reportDocument = new Document(pageSize); PdfWriter pdfWriter = PdfWriter.GetInstance(reportDocument, fileStream); var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 17); reportDocument.Open(); PdfPTable reportTable = new PdfPTable(6); reportTable.HorizontalAlignment = Element.ALIGN_LEFT; PdfPCell headerCell = new PdfPCell(new Phrase("Produced products information", boldFont)); headerCell.Colspan = 6; headerCell.HorizontalAlignment = 0; reportTable.AddCell(headerCell); this.PutHeadCells(reportTable); foreach (var deal in deals) { reportTable.AddCell(deal.ProductName); reportTable.AddCell(deal.Quantity); reportTable.AddCell(deal.PricePerUnit); reportTable.AddCell(deal.Formula); reportTable.AddCell(deal.Address); reportTable.AddCell(deal.Total); } reportDocument.Add(reportTable); reportDocument.Close(); }
/// <summary> /// 合并PDF文件 /// </summary> /// <param name="originalFilePath">原始文件地址</param> /// <param name="mergeFilePath">合并文件地址</param> /// <param name="newFilePath">生成文件地址</param> private void MergePdf(string originalFilePath, string mergeFilePath, string newFilePath) { string[] fileList = { originalFilePath, mergeFilePath }; List <PdfReader> readerList = new List <PdfReader>(); PdfReader reader = null; iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(1660, 1000); iTextSharp.text.Document document = new iTextSharp.text.Document(rec); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(newFilePath, FileMode.Create)); document.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage newPage; foreach (var item in fileList) { reader = new PdfReader(item); int iPageNum = reader.NumberOfPages; for (int j = 1; j <= iPageNum; j++) { document.NewPage(); newPage = writer.GetImportedPage(reader, j); cb.AddTemplate(newPage, 0, 0); } readerList.Add(reader); } document.Close(); foreach (var item in readerList) { item.Dispose(); } }
public void GetRectAnno() { string appRootDir = new DirectoryInfo(Environment.CurrentDirectory).Parent.Parent.FullName; string filePath = outputFile; int pageFrom = 0; int pageTo = 0; listaRectangulos.Clear(); try { using (PdfReader reader = new PdfReader(filePath)) { pageTo = reader.NumberOfPages; for (int i = 1; i <= reader.NumberOfPages; i++) { PdfDictionary page = reader.GetPageN(i); PdfArray annots = page.GetAsArray(iTextSharp.text.pdf.PdfName.ANNOTS); if (annots != null) { foreach (PdfObject annot in annots.ArrayList) { //abtiene Annotation de PDF File PdfDictionary annotationDic = (PdfDictionary)PdfReader.GetPdfObject(annot); PdfName subType = (PdfName)annotationDic.Get(PdfName.SUBTYPE); //solo el subtype highlight if (subType.Equals(PdfName.HIGHLIGHT)) { // Obtiene Quadpoints y Rectángulo de texto resaltado //Console.Write("HighLight at Rectangle {0} with QuadPoints {1}\n", annotationDic.GetAsArray(PdfName.RECT), annotationDic.GetAsArray(PdfName.QUADPOINTS)); outputData = "HighLight at Rectangle {0} with QuadPoints {1}\n" + annotationDic.GetAsArray(PdfName.RECT) + annotationDic.GetAsArray(PdfName.QUADPOINTS); //Extraer texto usando la estrategia de rectángulo PdfArray coordinates = annotationDic.GetAsArray(PdfName.RECT); iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(float.Parse(coordinates.ArrayList[0].ToString(), CultureInfo.InvariantCulture.NumberFormat), float.Parse(coordinates.ArrayList[1].ToString(), CultureInfo.InvariantCulture.NumberFormat), float.Parse(coordinates.ArrayList[2].ToString(), CultureInfo.InvariantCulture.NumberFormat), float.Parse(coordinates.ArrayList[3].ToString(), CultureInfo.InvariantCulture.NumberFormat)); listaRectangulos.Add(rect); RenderFilter[] filter = { new RegionTextRenderFilter(rect) }; ITextExtractionStrategy strategy; StringBuilder sb = new StringBuilder(); strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter); sb.AppendLine(PdfTextExtractor.GetTextFromPage(reader, i, strategy)); } } } } } } catch (Exception ex) { } }
/// <summary> /// PDF Creator Helper With No Page Base (Don't want to write a page or report (header or footer) /// </summary> /// <param name="PageSize">Page Size - A4 is a default page size. Use Enum iTextSharp.text.PageSize</param> /// <param name="LandscapeMode">Do you want the pdf in landscape</param> /// <param name="MarginTop">Top Margin On The Page</param> /// <param name="MarginRight">Right Margin On The Page</param> /// <param name="MarginBottom">Bottom Margin On The Page</param> /// <param name="MarginLeft">Left Margin On The Page</param> /// <param name="PageEventHandler">A Page Event Class That Will Raise Any Events You Need</param> public PDFCreator(Rectangle PageSize, bool LandscapeMode, float MarginTop, float MarginRight, float MarginBottom, float MarginLeft, PageEventsBase PageEventHandler) { //create the instance of the ITextSharpDocument Doc = new Document(PageSize, MarginLeft, MarginRight, MarginTop, MarginBottom); //let's build the memory stream now Ms = new MemoryStream(); //let's create the new writer and attach the document Writer = PdfWriter.GetInstance(Doc, Ms); //add the page events to my custom class if (PageEventHandler != null) { Writer.PageEvent = PageEventHandler; } //if you want the pdf in landscape now, then rotate it if (LandscapeMode) { Doc.SetPageSize(PageSize.Rotate()); } //let's open the document so the developer can do whatever they wan't with it Doc.Open(); }
public override void OnEndPage(PdfWriter writer, Document document) { base.OnEndPage(writer, document); //x/total x pages 第X页/共X页 int pageN = writer.PageNumber; //String text = "Page " + pageN.ToString() + " of "; String text = string.Format("Page {0}/total pages 第{0}页/共 页", CurrentPage.ToString()); //float len = BF_Light.GetWidthPoint(text, ContentFontSize); float len1 = BF_Light.GetWidthPoint("Page x/total ", ContentFontSize); float len2 = BF_Light.GetWidthPoint("Page x/total pages 第x页/共 ", ContentFontSize); iTextSharp.text.Rectangle pageSize = document.PageSize; //cb.SetRGBColorFill(100, 100, 100); cb.BeginText(); cb.SetFontAndSize(BF_Light, ContentFontSize); //make page template in the middle, 90f is half of all length of page font cb.SetTextMatrix(document.PageSize.Width / 2 - 90f, pageSize.GetBottom(20f)); cb.ShowText(text); cb.EndText(); cb.AddTemplate(template, document.PageSize.Width / 2 - 90f + len1, pageSize.GetBottom(20f)); cb.AddTemplate(template, document.PageSize.Width / 2 - 90f + len2, pageSize.GetBottom(20f)); }
public iTextSharp.text.Rectangle getHalfPageSize(iTextSharp.text.Rectangle pagesize) { float width = pagesize.Width; float height = pagesize.Height; return(new iTextSharp.text.Rectangle(width, height / 2)); }
// --------------------------------------------------------------------------- /** * Creates a PDF document. */ public byte[] CreatePdf() { Rectangle rect = new Rectangle(-595, -842, 595, 842); using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document(rect)) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, ms); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; canvas.MoveTo(-595, 0); canvas.LineTo(595, 0); canvas.MoveTo(0, -842); canvas.LineTo(0, 842); canvas.Stroke(); // read the PDF with the logo PdfReader reader = new PdfReader(RESOURCE); PdfTemplate template = writer.GetImportedPage(reader, 1); // add it at different positions using different transformations canvas.AddTemplate(template, 0, 0); canvas.AddTemplate(template, 0.5f, 0, 0, 0.5f, -595, 0); canvas.AddTemplate(template, 0.5f, 0, 0, 0.5f, -297.5f, 297.5f); canvas.AddTemplate(template, 1, 0, 0.4f, 1, -750, -650); canvas.AddTemplate(template, 0, -1, -1, 0, 650, 0); canvas.AddTemplate(template, 0, -0.2f, -0.5f, 0, 350, 0); } return ms.ToArray(); } }
// =========================================================================== public void Write(Stream stream) { string RESOURCE = Utility.ResourcePosters; // step 1 using (Document document = new Document()) { // step 2 PdfWriter.GetInstance(document, stream); // step 3 document.Open(); Rectangle rect = new Rectangle(0, 806, 36, 842); rect.BackgroundColor = BaseColor.RED; document.Add(rect); // step 4 IEnumerable<Movie> movies = PojoFactory.GetMovies(); foreach (Movie movie in movies) { document.Add(new Paragraph(movie.MovieTitle)); // Add an image document.Add( Image.GetInstance(Path.Combine(RESOURCE, movie.Imdb + ".jpg")) ); } } }
private Rectangle CreatePdfRectangle() { Rectangle rect = new Rectangle(PageSize.A4); rect.BackgroundColor = new BaseColor(System.Drawing.Color.LightGray); return rect; }
/** * @see com.itextpdf.text.pdf.PdfPCellEvent#cellLayout(com.itextpdf.text.pdf.PdfPCell, * com.itextpdf.text.Rectangle, com.itextpdf.text.pdf.PdfContentByte[]) */ virtual public void CellLayout(PdfPCell cell, Rectangle position, PdfContentByte[] canvases) { float effectivePadding = styleValues.BorderWidthLeft/2 + styleValues.HorBorderSpacing; float x1 = position.Left + effectivePadding; if (styleValues.IsLastInRow){ effectivePadding = styleValues.BorderWidthRight/2 + styleValues.HorBorderSpacing; } else { effectivePadding = styleValues.BorderWidthRight/2; } float x2 = position.Right - effectivePadding; effectivePadding = styleValues.BorderWidthTop/2 + styleValues.VerBorderSpacing; float y1 = position.Top - effectivePadding; effectivePadding = styleValues.BorderWidthBottom/2; float y2 = position.Bottom + effectivePadding; PdfContentByte cb = canvases[PdfPTable.LINECANVAS]; BaseColor color = styleValues.Background; if (color != null) { cb.SetColorStroke(color); cb.SetColorFill(color); cb.Rectangle(x1, y1, x2-x1, y2-y1); cb.Fill(); } BaseColor borderColor = styleValues.BorderColorLeft; float width = styleValues.BorderWidthLeft; if (borderColor != null && width != 0) { cb.SetLineWidth(width); cb.SetColorStroke(borderColor); cb.MoveTo(x1, y1); // start leftUpperCorner cb.LineTo(x1, y2); // left cb.Stroke(); } borderColor = styleValues.BorderColorBottom; width = styleValues.BorderWidthBottom; if (borderColor != null && width != 0) { cb.SetLineWidth(width); cb.SetColorStroke(borderColor); cb.MoveTo(x1, y2); // left cb.LineTo(x2, y2); // bottom cb.Stroke(); } borderColor = styleValues.BorderColorRight; width = styleValues.BorderWidthRight; if (borderColor != null && width != 0) { cb.SetLineWidth(width); cb.SetColorStroke(borderColor); cb.MoveTo(x2, y2); // bottom cb.LineTo(x2, y1); // right cb.Stroke(); } borderColor = styleValues.BorderColorTop; width = styleValues.BorderWidthTop; if (borderColor != null && width != 0) { cb.SetLineWidth(width); cb.SetColorStroke(borderColor); cb.MoveTo(x2, y1); // right cb.LineTo(x1, y1); // top cb.Stroke(); } cb.ResetRGBColorStroke(); }
public void PutRectAnno(float lx, float ly, float rx, float ry) { using (FileStream fs = new FileStream(highLightFile, FileMode.Create, FileAccess.Write, FileShare.None)) { using (PdfStamper stamper = new PdfStamper(reader, fs)) { iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(lx, ly, rx, ry); float[] quad = { rect.Left, rect.Top, rect.Right, rect.Top, rect.Left, rect.Bottom, rect.Right, rect.Bottom }; PdfAnnotation highlight = PdfAnnotation.CreateMarkup(stamper.Writer, rect, null, PdfAnnotation.MARKUP_HIGHLIGHT, quad); highlight.Color = BaseColor.YELLOW; if (rect.Width > 0 && rect.Height > 0) { stamper.AddAnnotation(highlight, 1); } stamper.Close(); } fs.Close(); } }
private void Form1_Load(object sender, EventArgs e) { string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 1000f); Document document = new Document(); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"HelloWorld.pdf", FileMode.Create)); document.Open(); /* chapter05/FoxDogImageTypes.java */ iText.Image img1 = iText.Image.GetInstance(iText.Image.GetInstance(string.Concat(appPath, "\\", "fox.jpg"))); img1.Alignment = iText.Image.ALIGN_MIDDLE; img1.ScaleAbsolute(100f, 100f); document.Add(img1); /* chapter05/Barcodes.java */ PdfContentByte cb = writer.DirectContent; document.Add(new Paragraph("Barcode 3 of 9")); Barcode39 code39 = new Barcode39(); code39.Code = "ITEXT IN ACTION"; document.Add(code39.CreateImageWithBarcode(cb, null, null)); document.Close(); webBrowser1.Navigate(string.Concat(appPath, "\\", @"HelloWorld.pdf")); }
/// <summary> /// Obtiene el texto contenido en un pdf en función del parámetro facilitado. /// </summary> /// <param name="renderInfo">Información para la obtención del texto.</param> public override void RenderText(TextRenderInfo renderInfo) { base.RenderText(renderInfo); LineSegment segment = renderInfo.GetBaseline(); if (renderInfo.GetRise() != 0) { // remove the rise from the baseline - we do this because the text from a // super /subscript render operations should probably be considered as part // of the baseline of the text the super/sub is relative to Matrix riseOffsetTransform = new Matrix(0, -renderInfo.GetRise()); segment = segment.TransformBy(riseOffsetTransform); } var ll = renderInfo.GetDescentLine().GetStartPoint(); // lower left var ur = renderInfo.GetAscentLine().GetEndPoint(); // upper right string text = renderInfo.GetText(); //mirando string fillColor = renderInfo.GetFillColor()?.ToString(); // Color del texto. string strokeColor = renderInfo.GetStrokeColor()?.ToString(); // Color del texto. Vector curBaseline = renderInfo.GetBaseline().GetStartPoint(); Vector topRight = renderInfo.GetAscentLine().GetEndPoint(); iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(curBaseline[Vector.I1], curBaseline[Vector.I2], topRight[Vector.I1], topRight[Vector.I2]); double fontSize = Math.Round(rect.Height); // Tamaño de la fuente a partir del rectángulo extraído. string fontName = renderInfo.GetFont()?.PostscriptFontName; //Nombre de la fuente. //base._PdfTextChunks.Add(new PdfTextChunk(renderInfo.GetText(), base.tclStrat.CreateLocation(renderInfo, segment), ll, ur)); _PdfColorFontTextChunks.Add(new PdfColorFontTextChunk(renderInfo.GetText(), base.tclStrat.CreateLocation(renderInfo, segment), ll, ur, fillColor, strokeColor, fontName, fontSize)); }
//this function is capable of taking multiple tiff images from a directory //and processing each tiff frame by frame private void AddTiff(Document pdfDocument, iTextSharp.text.Rectangle pdfPageSize, String tiffPath) { RandomAccessFileOrArray ra = new RandomAccessFileOrArray(tiffPath); int pageCount = TiffImage.GetNumberOfPages(ra); for (int i = 1; i <= pageCount; i++) { iTextSharp.text.Image img = TiffImage.GetTiffImage(ra, i); if (img.ScaledWidth > pdfPageSize.Width || img.ScaledHeight > pdfPageSize.Height) { img.SetDpi(2, 2); if (img.DpiX != 0 && img.DpiY != 0 && img.DpiX != img.DpiY) { float percentX = (pdfPageSize.Width * 100) / img.ScaledWidth; float percentY = (pdfPageSize.Height * 100) / img.ScaledHeight; img.ScalePercent(percentX, percentY); img.WidthPercentage = 0; } else { img.ScaleToFit(pdfPageSize.Width, pdfPageSize.Height); } } iTextSharp.text.Rectangle pageRect = new iTextSharp.text.Rectangle(0, 0, img.ScaledWidth, img.ScaledHeight); pdfDocument.SetPageSize(pageRect); pdfDocument.SetMargins(0, 0, 0, 0); pdfDocument.NewPage(); pdfDocument.Add(img); } }
/** * * @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) */ public virtual void RenderText(TextRenderInfo renderInfo) { LineSegment segment = renderInfo.GetBaseline(); if (renderInfo.GetRise() != 0) { // remove the rise from the baseline - we do this because the text from a super/subscript render operations should probably be considered as part of the baseline of the text the super/sub is relative to Matrix riseOffsetTransform = new Matrix(0, -renderInfo.GetRise()); segment = segment.TransformBy(riseOffsetTransform); } //TextChunk location = new TextChunk(renderInfo.GetText(), segment.GetStartPoint(), segment.GetEndPoint(), renderInfo.GetSingleSpaceWidth()); //locationalResult.Add(location); //base.RenderText(renderInfo); //Get the bounding box for the chunk of text var bottomLeft = renderInfo.GetDescentLine().GetStartPoint(); var topRight = renderInfo.GetAscentLine().GetEndPoint(); //Create a rectangle from it var rect = new iTextSharp.text.Rectangle( bottomLeft[Vector.I1], bottomLeft[Vector.I2], topRight[Vector.I1], topRight[Vector.I2] ); TextChunk location = new TextChunk(renderInfo.GetText(), segment.GetStartPoint(), segment.GetEndPoint(), renderInfo.GetSingleSpaceWidth(), rect); locationalResult.Add(location); }
//Automatically called for each chunk of text in the PDF public override void RenderText(TextRenderInfo renderInfo) { base.RenderText(renderInfo); //See if the current chunk contains the text var startPosition = System.Globalization.CultureInfo.CurrentCulture.CompareInfo.IndexOf(renderInfo.GetText(), this.TextToSearchFor, this.CompareOptions); //If not found bail if (startPosition < 0) { return; } //Grab the individual characters var chars = renderInfo.GetCharacterRenderInfos().Skip(startPosition).Take(this.TextToSearchFor.Length).ToList(); //Grab the first and last character var firstChar = chars.First(); var lastChar = chars.Last(); //Get the bounding box for the chunk of text var bottomLeft = firstChar.GetDescentLine().GetStartPoint(); var topRight = lastChar.GetAscentLine().GetEndPoint(); //Create a rectangle from it var rect = new iTextSharp.text.Rectangle(bottomLeft[Vector.I1], bottomLeft[Vector.I2], topRight[Vector.I1], topRight[Vector.I2]); //Add this to our main collection this.myPoints.Add(new RectAndText(rect, this.TextToSearchFor)); }
public static byte[] GetPdf() { using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { PdfWriter writer = PdfWriter.GetInstance(document, ms); document.Open(); int i = 0; foreach (var fieldName in FieldNames) { var rectangle = new Rectangle(20, 800 - i * 40, 40, 780 - i * 40); var checkbox = new RadioCheckField( writer, rectangle, fieldName, ON_STATE ); checkbox.CheckType = RadioCheckField.TYPE_CHECK; PdfFormField field = checkbox.CheckField; writer.AddAnnotation(field); ++i; } // add textbox field for sanity-check var textField = new TextField( writer, new Rectangle(20, 800 - i * 40, 400, 780 - i * 40), TEXT_FIELD ); writer.AddAnnotation(textField.GetTextField()); } return ms.ToArray(); } }
public override void OnEndPage(PdfWriter writer, Document document) { // cell height float cellHeight = document.TopMargin; // PDF document size iTextSharp.text.Rectangle page = document.PageSize; // create two column table PdfPTable head = new PdfPTable(2); head.TotalWidth = page.Width; int pageN = writer.PageNumber; // add image; PdfPCell() overload sizes image to fit cell PdfPCell c = new PdfPCell(ImageHeader); c.HorizontalAlignment = Element.ALIGN_RIGHT; // c.FixedHeight = cellHeight; String text = "Pagina " + writer.PageNumber; c.Border = PdfPCell.NO_BORDER; head.AddCell(c); // add the header text c = new PdfPCell(new Phrase( Titolo + " " + DateTime.Now.ToString("dd-MM-yyyy HH:mm"), new iTextSharp.text.Font(iTextSharp.text.Font.TIMES_ROMAN, 9) )); c.Border = PdfPCell.NO_BORDER; c.VerticalAlignment = Element.ALIGN_BOTTOM; c.FixedHeight = cellHeight; head.AddCell(c); PdfContentByte cb = writer.DirectContent; cb.BeginText(); BaseFont bf = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb = writer.DirectContent;; cb.SetFontAndSize(bf, 7); cb.SetTextMatrix(document.PageSize.GetRight(180), document.PageSize.GetBottom(30)); cb.ShowText(text); cb.EndText(); PdfTemplate footerTemplate; footerTemplate = cb.CreateTemplate(50, 50); float len = bf.GetWidthPoint(text, 12); cb.AddTemplate(footerTemplate, document.PageSize.GetRight(180) + len, document.PageSize.GetBottom(30)); // since the table header is implemented using a PdfPTable, we call // WriteSelectedRows(), which requires absolute positions! head.WriteSelectedRows( 0, -1, // first/last row; -1 flags all write all rows 0, // left offset // ** bottom** yPos of the table page.Height - cellHeight + head.TotalHeight, writer.DirectContent ); }
static PdfSignatureAppearance CreateSignatureAppearance(PdfStamper stamper, Signature signature) { PdfSignatureAppearance signatureAppearance = stamper.SignatureAppearance; signatureAppearance.Reason = signature.Reason; signatureAppearance.Contact = signature.Contact; signatureAppearance.Location = signature.Location; signatureAppearance.SignDate = DateTime.UtcNow.Date; var pageRect = stamper.Reader.GetPageSize(signature.Page); var random = new Random(); int signatureLeft = random.Next(20, (int)pageRect.Width - 400 - 20); int signatureTop = random.Next(20, (int)pageRect.Height - 75 - 20); var signatureRect = new iTextSharp.text.Rectangle( (float)signatureLeft, (float)signatureTop, (float)signatureLeft + 400, (float)signatureTop + 75); signatureAppearance.Acro6Layers = true; signatureAppearance.Layer2Text = signature.CustomText; signatureAppearance.Render = PdfSignatureAppearance.SignatureRender.Description; signatureAppearance.SetVisibleSignature(signatureRect, signature.Page, null); return(signatureAppearance); }
private void Print_btn_click(object sender, EventArgs e) { FileStream fs = new FileStream("Ticket.pdf", FileMode.Create, FileAccess.Write, FileShare.None); iTextSharp.text.Rectangle rec2 = new iTextSharp.text.Rectangle(PageSize.A4); rec2.BackgroundColor = new BaseColor(Color.LightBlue); Document doc = new Document(rec2); PdfWriter wri = PdfWriter.GetInstance(doc, fs); doc.Open(); iTextSharp.text.Image PNG = iTextSharp.text.Image.GetInstance("logo.png"); PNG.ScalePercent(40f); PNG.SetAbsolutePosition(doc.PageSize.Width - 46f - 75f, doc.PageSize.Height - 36f - 105f); Paragraph par = new Paragraph(" Railway Enquiry System "); Paragraph par1 = new Paragraph(" Ticket ID : " + Ticketidtbox.Text + "\nTrain Name : " + TrainNametbox.Text + "\nFrom : " + Fromtbox.Text + " To : " + totbox.Text + "\nJourney Date : " + JourneydateTP.Text + " Starting Time : " + Stimetbox.Text); Paragraph par2 = new Paragraph("Passenger Name : " + pnametbox.Text + " Reaching Time : " + RTimetbox.Text + "\nGender : " + pgendertbox.Text + "\nNumber of Seat : " + Seatstbox.Text + " Seat Type : " + snametbox.Text + "\nGender : " + pgendertbox.Text + "\nPrice : " + pricetbox.Text); doc.Add(PNG); doc.Add(par); doc.Add(par1); doc.Add(par2); doc.Close(); MessageBox.Show("Successfully Ticket Printed", "Print Info"); this.Printbtn.Enabled = false; }
//private static IDictionary<string, string> Meta2Parameters(Texxtoor.BaseLibrary.Pdf2Epub.MetaData data) { // IDictionary<string, string> dictionary = new Dictionary<string, string>(); // dictionary.Add("##Author##", data.Author); // dictionary.Add("##Title##", data.Title); // dictionary.Add("##Date##", data.Date); // dictionary.Add("##UUID##", Guid.NewGuid().ToString()); // return dictionary; //} private static void ParseHtml(Document doc, StringReader html, StyleSheet css, List <Bitmap> images) { iTextSharp.text.Rectangle mySize = null; var htmlWorker = new HTMLWorker(doc); htmlWorker.SetStyleSheet(css); //htmlWorker.Parse(html); var objects = HTMLWorker.ParseToList(html, css); foreach (var element in objects) { doc.Add(element); } mySize = doc.PageSize; if (images.Count > 0) { for (int i = 0; i <= images.Count - 1; i++) { System.Drawing.Image mySource = (Bitmap)images[i]; iTextSharp.text.Image myImage = iTextSharp.text.Image.GetInstance(mySource, System.Drawing.Imaging.ImageFormat.Png); myImage.ScaleAbsolute(400, 300); doc.Add(myImage); } } }
public static void SetPageBackgroundColor(this PdfInfo pdfInfo, int pageNumber, BaseColor color = null) { if (color == null) { color = BaseColor.WHITE; } using (PdfReader reader = new PdfReader(pdfInfo.GetBytes())) { using (MemoryStream ms = new MemoryStream()) { using (PdfStamper stamper = new PdfStamper(reader, ms)) { PageInfo pageInfo = pdfInfo.GetPage(pageNumber); Rectangle rectangle = new Rectangle(0, 0, Utilities.MillimetersToPoints(pageInfo.PageWidth), Utilities.MillimetersToPoints(pageInfo.PageHeight), 0) { BackgroundColor = color }; var cb = stamper.GetUnderContent(pageNumber); cb.Rectangle(rectangle); } pdfInfo.UpdateBytes(ms.ToArray()); } } }
public void SetSignatureBox(float llx, float lly, float urx, float ury) { SignatureBox = new Rectangle(llx, lly, urx, ury) { BorderColor = BaseColor.BLACK, Border = Rectangle.BOX, BorderWidth = 1 }; }
virtual public void test() { PdfReader reader = TestResourceUtils.GetResourceAsPdfReader(TEST_RESOURCES_PATH, "user10.pdf"); Rectangle rectangle = new Rectangle(71, 792 - 84, 225, 792 - 75); RenderFilter filter = new RegionTextRenderFilter(rectangle); String txt = PdfTextExtractor.GetTextFromPage(reader, 1, new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter)); Assert.AreEqual("Pname Dname Email Address", txt); }
// --------------------------------------------------------------------------- public void Write(Stream stream) { // step 1 using (Document document = new Document()) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, stream); // step 3 document.Open(); // step 4 Rectangle rect = new Rectangle(100, 400, 500, 800); rect.Border = Rectangle.BOX; rect.BorderWidth = 0.5f; rect.BorderColor = new BaseColor(0xFF, 0x00, 0x00); document.Add(rect); PdfIndirectObject streamObject = null; using (FileStream fs = new FileStream(RESOURCE, FileMode.Open, FileAccess.Read)) { PdfStream stream3D = new PdfStream(fs, writer); stream3D.Put(PdfName.TYPE, new PdfName("3D")); stream3D.Put(PdfName.SUBTYPE, new PdfName("U3D")); stream3D.FlateCompress(); streamObject = writer.AddToBody(stream3D); stream3D.WriteLength(); } PdfDictionary dict3D = new PdfDictionary(); dict3D.Put(PdfName.TYPE, new PdfName("3DView")); dict3D.Put(new PdfName("XN"), new PdfString("Default")); dict3D.Put(new PdfName("IN"), new PdfString("Unnamed")); dict3D.Put(new PdfName("MS"), PdfName.M); dict3D.Put( new PdfName("C2W"), new PdfArray( new float[] { 1, 0, 0, 0, 0, -1, 0, 1, 0, 3, -235, 28 } ) ); dict3D.Put(PdfName.CO, new PdfNumber(235)); PdfIndirectObject dictObject = writer.AddToBody(dict3D); PdfAnnotation annot = new PdfAnnotation(writer, rect); annot.Put(PdfName.CONTENTS, new PdfString("3D Model")); annot.Put(PdfName.SUBTYPE, new PdfName("3D")); annot.Put(PdfName.TYPE, PdfName.ANNOT); annot.Put(new PdfName("3DD"), streamObject.IndirectReference); annot.Put(new PdfName("3DV"), dictObject.IndirectReference); PdfAppearance ap = writer.DirectContent.CreateAppearance( rect.Width, rect.Height ); annot.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, ap); annot.SetPage(); writer.AddAnnotation(annot); } }
// --------------------------------------------------------------------------- /** * @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout( * com.lowagie.text.pdf.PdfPCell, * com.lowagie.text.Rectangle, * com.lowagie.text.pdf.PdfContentByte[] * ) */ public void CellLayout(PdfPCell cell, Rectangle rect, PdfContentByte[] cb) { parent.AddKid(kid); kid.SetWidget( new Rectangle(rect.GetLeft(padding), rect.GetBottom(padding), rect.GetRight(padding), rect.GetTop(padding)), PdfAnnotation.HIGHLIGHT_INVERT ); }
// --------------------------------------------------------------------------- /** Implementation of the cellLayout method. */ public void CellLayout( PdfPCell cell, Rectangle position, PdfContentByte[] canvases) { writer.AddAnnotation(new PdfAnnotation( writer, position.Left, position.Bottom, position.Right, position.Top, action )); }
/// <summary> /// Initializes a new instance of the <see cref="PdfGenerator"/> class. /// </summary> public PdfGenerator() { Rectangle rect = new Rectangle(width * DPI, height * DPI); this.document = new Document(rect, hMargin, hMargin, vMargin, vMargin); this.ms = new MemoryStream(); this.writer = PdfWriter.GetInstance(this.document, this.ms); this.document.Open(); }
/// <summary> /// PDF Creator Helper With No Page Base (Don't want to write a page or report (header or footer) /// </summary> /// <param name="PageSize">Page Size - A4 is a default page size. Use Enum iTextSharp.text.PageSize</param> /// <param name="LandscapeMode">Do you want the pdf in landscape</param> /// <param name="MarginTop">Top Margin On The Page</param> /// <param name="MarginRight">Right Margin On The Page</param> /// <param name="MarginBottom">Bottom Margin On The Page</param> /// <param name="MarginLeft">Left Margin On The Page</param> public PDFCreator(Rectangle PageSize, bool LandscapeMode, float MarginTop, float MarginRight, float MarginBottom, float MarginLeft) : this(PageSize, LandscapeMode, MarginTop, MarginRight, MarginBottom, MarginLeft, null) { }
// =========================================================================== public void Write(Stream stream) { // step 1 using (Document document = new Document()) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, stream); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; // draw squares CreateSquares(canvas, 50, 720, 80, 20); ColumnText.ShowTextAligned( canvas, Element.ALIGN_LEFT, new Phrase( "Methods MoveTo(), LineTo(), stroke(), closePathStroke(), Fill(), and closePathFill()" ), 50, 700, 0 ); // draw Bezier curves createBezierCurves(canvas, 70, 600, 80, 670, 140, 690, 160, 630, 160); ColumnText.ShowTextAligned( canvas, Element.ALIGN_LEFT, new Phrase("Different CurveTo() methods, followed by stroke()"), 50, 580, 0 ); // draw stars and circles CreateStarsAndCircles(canvas, 50, 470, 40, 20); ColumnText.ShowTextAligned( canvas, Element.ALIGN_LEFT, new Phrase( "Methods Fill(), eoFill(), NewPath(), FillStroke(), and EoFillStroke()" ), 50, 450, 0 ); // draw different shapes using convenience methods canvas.SaveState(); canvas.SetColorStroke(new GrayColor(0.2f)); canvas.SetColorFill(new GrayColor(0.9f)); canvas.Arc(50, 270, 150, 330, 45, 270); canvas.Ellipse(170, 270, 270, 330); canvas.Circle(320, 300, 30); canvas.RoundRectangle(370, 270, 80, 60, 20); canvas.FillStroke(); canvas.RestoreState(); Rectangle rect = new Rectangle(470, 270, 550, 330); rect.BorderWidthBottom = 10; rect.BorderColorBottom = new GrayColor(0f); rect.BorderWidthLeft = 4; rect.BorderColorLeft = new GrayColor(0.9f); rect.BackgroundColor = new GrayColor(0.4f); canvas.Rectangle(rect); ColumnText.ShowTextAligned( canvas, Element.ALIGN_LEFT, new Phrase("Convenience methods"), 50, 250, 0 ); } }
private bool TextIsInRectangle(PdfReader reader, String text, Rectangle rect) { FilteredTextRenderListener filterListener = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), new RegionTextRenderFilter(rect)); String extractedText = PdfTextExtractor.GetTextFromPage(reader, 1, filterListener); return extractedText.Equals(text); }
public override void OnEndPage(PdfWriter writer, Document document) { Rectangle pageSize = writer.PageSize; float verticalPosition = writer.GetVerticalPosition(false); PdfContentByte canvas = writer.DirectContent; Rectangle rect = new Rectangle(0, verticalPosition, pageSize.Right, pageSize.Top); rect.Border = Rectangle.BOX; rect.BorderWidth = 1; rect.BorderColor = BaseColor.BLUE; canvas.Rectangle(rect); }
/// <summary> /// Initializes a new instance of the <see cref="PdfRenderer"/> class. /// Initialize a new instance of the PDFRenderer class with the specified page type and orientation /// </summary> /// <param name="pageType"> /// A String containing the page size name. E.g. A4, letter /// </param> /// <param name="landscape"> /// If true the page orientation will be landscape, else potrait /// </param> /// <param name="componentCodeDescriptionMap"> /// The map between component code value and description /// </param> public PdfRenderer( string pageType, bool landscape, ComponentCodeDescriptionDictionary componentCodeDescriptionMap) : base(componentCodeDescriptionMap, false) { Rectangle page = PageSize.GetRectangle(pageType); if (page != null) { this._pageSize = landscape ? page.Rotate() : page; } }
public static void CreatePdf(string fileName) { Rectangle pagesize = new Rectangle(216f, 720f); Document document = new Document(pagesize, 36f, 72f, 108f, 180f); FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate); PdfWriter.GetInstance(document, stream); document.Open(); document.Add(new Paragraph("Hello World")); document.Close(); }
public PdfResult(IList rows, string fileName, Type resourceSource, string[] headers, PdfPageEventHelper eventHelper, Rectangle pageSize, Single[] columnsWidth) { Rows = rows; FileName = fileName; _headers = headers; ResourceSource = resourceSource; PageEventHelper = eventHelper; DocumentPageSize = pageSize; ColumnWidth = columnsWidth; }
/// <summary> /// It will show the SaveFileDialog to save the current report's content as a PDF file. /// </summary> /// <param name="doc">Retrieve it from xps.GetFixedDocumentSequence() or documentViewer.Document</param> /// <param name="pageSize">Example: PageSize.A4</param> /// <param name="quality">Resolution of the Images in the PDF </param> public static void InteractiveExport(this FixedDocumentSequence doc, Rectangle pageSize, double quality = 1) { var dlg = new SaveFileDialog { DefaultExt = ".pdf", Filter = "PDF Files (.pdf)|*.pdf" }; var result = dlg.ShowDialog(); if (result != true) return; var filename = dlg.FileName; Export(doc, filename, pageSize, quality); }
public PDFDocument(Stream stream, Rectangle pageSize) { DocumentStream = stream; Document = new Document(pageSize); PageEventHelper = new PageEventHelper(); Writer = PdfWriter.GetInstance(Document, stream); Writer.PageEvent = PageEventHelper; Document.Open(); Document.AddCreationDate(); }