private void ProcessResources(PDResources resources, string prefix, bool addKey) { if (resources != null) { Iterator iterator = resources.getXObjectNames().iterator(); int num = 1; while (iterator.hasNext()) { COSName cOSName = (COSName)iterator.next(); string str = null; str = (!addKey ? this.GetUniqueFileName(prefix, ".jpg") : this.GetUniqueFileName(string.Concat(prefix, "_", num), ".jpg")); PDResources.OutputFileName = string.Concat(str, ".jpg"); PDXObject xObject = resources.getXObject(cOSName); if (resources.isImageXObject(cOSName)) { PDImageXObject pDImageXObject = (PDImageXObject)xObject; str = (!addKey ? this.GetUniqueFileName(prefix, pDImageXObject.getSuffix()) : this.GetUniqueFileName(string.Concat(prefix, "_", num), pDImageXObject.getSuffix())); Console.WriteLine(string.Concat("Writing image:", str)); try { BufferedImage image = pDImageXObject.getImage(); ImageIO.write(image, "jpg", new java.io.File(string.Concat(str, ".jpg"))); } catch (Exception exception) { Console.WriteLine("Could not write image: {0}.{1}{2}", str, Environment.NewLine, exception.Message); } } else if (xObject is PDFormXObject) { this.ProcessResources(((PDFormXObject)xObject).getResources(), prefix, addKey); } } } }
private bool ConvertTiffToPDF(string imagePath) { try { string[] strArrays = ImageToPDFConverter.SplitTiff(imagePath); for (int i = 0; i < (int)strArrays.Length; i++) { string str = strArrays[i]; PDPage pDPage = new PDPage(); this.pdfFile.addPage(pDPage); PDImageXObject pDImageXObject = PDImageXObject.createFromFile(str, this.pdfFile); PDRectangle pDRectangle = new PDRectangle((float)(pDImageXObject.getWidth() + 40), (float)(pDImageXObject.getHeight() + 40)); pDPage.setMediaBox(pDRectangle); PDPageContentStream pDPageContentStream = new PDPageContentStream(this.pdfFile, pDPage); pDPageContentStream.drawImage(pDImageXObject, 20f, 20f); pDPageContentStream.close(); } } catch (Exception exception1) { Exception exception = exception1; throw new PDFToolkitException(exception.Message, exception); } return(true); }
private bool ConvertOthersToPDF(string imagePath) { try { PDPage pDPage = new PDPage(); string str = "temp.png"; this.pdfFile.addPage(pDPage); if (Path.GetExtension(imagePath).ToLower() == ".bmp") { ImageToPDFConverter.BmpToPng(new Bitmap(Image.FromFile(imagePath)), str); } else if (Path.GetExtension(imagePath).ToLower() == ".png") { str = imagePath; } else { Image.FromFile(imagePath).Save(str, ImageFormat.Png); } PDImageXObject pDImageXObject = PDImageXObject.createFromFile(str, this.pdfFile); PDRectangle pDRectangle = new PDRectangle((float)(pDImageXObject.getWidth() + 40), (float)(pDImageXObject.getHeight() + 40)); pDPage.setMediaBox(pDRectangle); PDPageContentStream pDPageContentStream = new PDPageContentStream(this.pdfFile, pDPage); pDPageContentStream.drawImage(pDImageXObject, 20f, 20f); pDPageContentStream.close(); } catch (Exception exception1) { Exception exception = exception1; throw new PDFToolkitException(exception.Message, exception); } return(true); }
public static PDAppearanceDictionary GetRubberStampAppearance(PDFDocument document, PDFRectangle rect, string subType) { PDAppearanceDictionary pDAppearanceDictionary; string empty = string.Empty; empty = (!System.IO.File.Exists(subType) ? PDFHelper.GetResourceLocation(subType) : subType); if (empty == null) { Console.WriteLine("Cant find rubber stamp"); pDAppearanceDictionary = null; } else { PDImageXObject pDImageXObject = PDImageXObject.createFromFileByContent(new java.io.File(empty), document.PDFBoxDocument); float lowerLeftX = rect.PDFBoxRectangle.getLowerLeftX(); float lowerLeftY = rect.PDFBoxRectangle.getLowerLeftY(); rect.PDFBoxRectangle.getWidth(); rect.PDFBoxRectangle.getHeight(); rect.PDFBoxRectangle.getHeight(); rect.PDFBoxRectangle.getWidth(); PDFormXObject pDFormXObject = new PDFormXObject(document.PDFBoxDocument); pDFormXObject.setResources(new PDResources()); pDFormXObject.setBBox(rect.PDFBoxRectangle); pDFormXObject.setFormType(1); OutputStream outputStream = pDFormXObject.getStream().createOutputStream(); PDFHelper.drawXObject(pDImageXObject, pDFormXObject.getResources(), outputStream, lowerLeftX, lowerLeftY, (float)pDImageXObject.getWidth(), (float)pDImageXObject.getHeight()); outputStream.close(); PDAppearanceStream pDAppearanceStream = new PDAppearanceStream(pDFormXObject.getCOSObject()); PDAppearanceDictionary pDAppearanceDictionary1 = new PDAppearanceDictionary(new COSDictionary()); pDAppearanceDictionary1.setNormalAppearance(pDAppearanceStream); pDAppearanceDictionary = pDAppearanceDictionary1; } return(pDAppearanceDictionary); }
private static void drawXObject(PDImageXObject xobject, PDResources resources, OutputStream os, float x, float y, float width, float height) { COSName cOSName = resources.@add(xobject); PDFHelper.appendRawCommands(os, PDFHelper.SAVE_GRAPHICS_STATE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)width)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((long)0)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((long)0)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)height)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)x)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)y)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.CONCATENATE_MATRIX); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, "/"); PDFHelper.appendRawCommands(os, cOSName.getName()); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.XOBJECT_DO); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.RESTORE_GRAPHICS_STATE); }
private bool CheckImages() { bool flag; try { foreach (PDPage page in this.doc.getPages()) { PDResources resources = page.getResources(); Iterator iterator = resources.getXObjectNames().iterator(); while (iterator.hasNext()) { COSName cOSName = (COSName)iterator.next(); if (resources.isImageXObject(cOSName)) { PDXObject xObject = null; try { xObject = resources.getXObject(cOSName); } catch (Exception exception) { continue; } PDImageXObject pDImageXObject = (PDImageXObject)xObject; COSBase filters = pDImageXObject.getCOSStream().getFilters(); if (filters != null) { if ((filters.toString().ToLower().Contains("jpxdecode") ? true : filters.toString().ToLower().Contains("lzw"))) { flag = false; return(flag); } } if (pDImageXObject.getSoftMask() != null) { pDImageXObject.setColorSpace(null); } PDImageXObject mask = pDImageXObject.getMask(); pDImageXObject.getSoftMask(); if (mask != null) { pDImageXObject.setColorSpace(null); } } } } flag = true; } catch (Exception exception1) { flag = false; } return(flag); }
private bool ConvertJPGToPDF(string imagePath) { try { PDPage pDPage = new PDPage(); this.pdfFile.addPage(pDPage); PDImageXObject pDImageXObject = PDImageXObject.createFromFile(imagePath, this.pdfFile); PDRectangle pDRectangle = new PDRectangle((float)(pDImageXObject.getWidth() + 40), (float)(pDImageXObject.getHeight() + 40)); pDPage.setMediaBox(pDRectangle); PDPageContentStream pDPageContentStream = new PDPageContentStream(this.pdfFile, pDPage); pDPageContentStream.drawImage(pDImageXObject, 20f, 20f); pDPageContentStream.close(); } catch (Exception exception1) { Exception exception = exception1; throw new PDFToolkitException(exception.Message, exception); } return(true); }
internal static PDDocument AddTrialStampIfNecessary(PDDocument pdfFile) { if (PDFHelper.AddStamp) { PDImageXObject pDImageXObject = null; foreach (PDPage page in pdfFile.getPages()) { string str = PDFHelper.CreateLogo("Created with a trial copy of Aquaforest PDF Toolkit", page.getRotation()); if (!string.IsNullOrEmpty(str)) { pDImageXObject = PDImageXObject.createFromFile(str, pdfFile); PDPageContentStream pDPageContentStream = new PDPageContentStream(pdfFile, page, PDPageContentStream.AppendMode.APPEND, true); pDPageContentStream.drawImage(pDImageXObject, 100f, page.getMediaBox().getHeight() - 100f); pDPageContentStream.close(); } } pdfFile.getDocumentCatalog().setOpenAction(PDFHelper.GetJavascriptPopup()); } return(pdfFile); }