public string[] Split(string url, string splittedFilesDirectoryName, string prefixOfFileName) { var bytes = LibPDFTools.GetBytes(url); switch (LibPDFTools.GetImageFileType(bytes)) { case ImageFileType.PDF: return(SplitPdf(url, splittedFilesDirectoryName, prefixOfFileName)); case ImageFileType.TIFF: return(SplitTiff(bytes, splittedFilesDirectoryName, prefixOfFileName)); default: throw new ArgumentException(); } }
public PdfReader CreatePdfReader(byte[] bytes, PdfConcatenatorOption option) { PdfReader reader; switch (LibPDFTools.GetImageFileType(bytes)) { case ImageFileType.PDF: reader = LibPDFTools.CreatePdfReader(bytes, QueryPassword, true); break; case ImageFileType.TIFF: reader = LibPDFTools.CreatePdfReaderFromTiff(bytes, option.GetBounds(), option.Margins); break; default: reader = LibPDFTools.CreatePdfReaderFromImage(bytes, option.GetBounds(), option.Margins); break; } return(reader); }
public void Append(byte[] bytes) { using (var ms = new MemoryStream(bytes)) { switch (LibPDFTools.GetImageFileType(bytes)) { case ImageFileType.PDF: using (var pdfDoc = new PDFLibNet.PDFWrapper("")) { pdfDoc.LoadPDF(ms); for (var i = 1; i <= pdfDoc.PageCount; i++) { pdfDoc.CurrentPage = i; pdfDoc.CurrentX = 0; pdfDoc.CurrentY = 0; pdfDoc.RenderDPI = this.resolution; Bitmap pageBuffer = null; using (var oPictureBox = new PictureBox()) { pdfDoc.RenderPage(oPictureBox.Handle); pageBuffer = new Bitmap(pdfDoc.PageWidth, pdfDoc.PageHeight); pdfDoc.ClientBounds = new System.Drawing.Rectangle(0, 0, pdfDoc.PageWidth, pdfDoc.PageHeight); using (var g = Graphics.FromImage(pageBuffer)) { var hdc = g.GetHdc(); pdfDoc.DrawPageHDC(hdc); g.ReleaseHdc(); } } SaveAddTiffPage(pageBuffer); pageBuffer.Dispose(); currPageNum++; } } break; case ImageFileType.TIFF: { using (var image = System.Drawing.Image.FromStream(ms)) { var fd = new System.Drawing.Imaging.FrameDimension(image.FrameDimensionsList[0]); int numberOfPages = image.GetFrameCount(fd); for (int pageNum = 0; pageNum < numberOfPages; pageNum++) { image.SelectActiveFrame(fd, pageNum); if (currPageNum == 0) { backbuffer = (System.Drawing.Image)image.Clone(); backbuffer.Save(outStream, codec, encoderParameters_MultiFrame); } else { backbuffer.SaveAdd(image, encoderParameters_FrameDimensionPage); } currPageNum++; } } } break; default: { var pageBuffer = System.Drawing.Image.FromStream(ms); SaveAddTiffPage(pageBuffer); } currPageNum++; break; } } }