public static void Run( String email, // authorization email String licenseKey, // authorization license key String openPath, // source PDF document String savePath, // output PDF document String configPath // configuration file ) { Pdfix pdfix = new Pdfix(); if (pdfix == null) { throw new Exception("Pdfix initialization fail"); } if (!pdfix.Authorize(email, licenseKey)) { throw new Exception(pdfix.GetError()); } PdfDoc doc = pdfix.OpenDoc(openPath, ""); if (doc == null) { throw new Exception(pdfix.GetError()); } PsFileStream stm = pdfix.CreateFileStream(configPath, PsFileMode.kPsReadOnly); if (stm != null) { PdfDocTemplate docTmpl = doc.GetDocTemplate(); if (docTmpl == null) { throw new Exception(pdfix.GetError()); } docTmpl.LoadFromStream(stm, PsDataFormat.kDataFormatJson); stm.Destroy(); } // define a cancel progress callback PdfCancelProc cancel_callback = (data) => { // to cancel the process return 1 Console.WriteLine("PdfCancelProc callback was called"); return(0); }; PdfPage page = doc.AcquirePage(0); PdePageMap pageMap = page.AcquirePageMap(null, IntPtr.Zero); // define an event callback PdfEventProc event_callback = (data) => { Console.WriteLine("Page contents did change. Releasing pageMap..."); if (pageMap != null) { pageMap.Release(); pageMap = null; } }; if (!pdfix.RegisterEvent(PdfEventType.kEventPageContentsDidChange, event_callback, IntPtr.Zero)) { throw new Exception(pdfix.GetError()); } if (!doc.AddTags(cancel_callback, IntPtr.Zero)) { throw new Exception(pdfix.GetError()); } if (!doc.Save(savePath, PdfSaveFlags.kSaveFull)) { throw new Exception(pdfix.GetError()); } doc.Close(); pdfix.Destroy(); }
public static void Run( String email, // authorization email String licenseKey, // authorization license key String openPath, // source PDF document String savePath, // output PDF document String configPath, // configuration file PdfHtmlParams htmlParams // html conversion params ) { Pdfix pdfix = new Pdfix(); if (pdfix == null) { throw new Exception("Pdfix initialization fail"); } if (!pdfix.Authorize(email, licenseKey)) { throw new Exception(pdfix.GetError()); } PdfToHtml pdfToHtml = new PdfToHtml(); if (pdfToHtml == null) { throw new Exception("PdfToHtml initialization fail"); } if (!pdfToHtml.Initialize(pdfix)) { throw new Exception(pdfix.GetError()); } PdfDoc doc = pdfix.OpenDoc(openPath, ""); if (doc == null) { throw new Exception(pdfix.GetError()); } // customize conversion PsFileStream stm = pdfix.CreateFileStream(configPath, PsFileMode.kPsReadOnly); if (stm != null) { PdfDocTemplate docTmpl = doc.GetDocTemplate(); if (docTmpl == null) { throw new Exception(pdfix.GetError()); } if (!docTmpl.LoadFromStream(stm, PsDataFormat.kDataFormatJson)) { throw new Exception(pdfix.GetError()); } stm.Destroy(); } // set html conversion params //htmlParams.type = PdfHtmlType.kPdfHtmlResponsive; //htmlParams.width = 1200; //htmlParams.flags |= PdfToHtml.kHtmlExportJavaScripts; //htmlParams.flags |= PdfToHtml.kHtmlExportFonts; //htmlParams.flags |= PdfToHtml.kHtmlRetainFontSize; //htmlParams.flags |= PdfToHtml.kHtmlRetainTextColor; htmlParams.flags |= PdfToHtml.kHtmlNoExternalCSS | PdfToHtml.kHtmlNoExternalJS | PdfToHtml.kHtmlNoExternalIMG | PdfToHtml.kHtmlNoExternalFONT; PdfHtmlDoc htmlDoc = pdfToHtml.OpenHtmlDoc(doc); if (htmlDoc == null) { throw new Exception(pdfix.GetError()); } if (!htmlDoc.Save(savePath, htmlParams, null, IntPtr.Zero)) { throw new Exception(pdfix.GetError()); } htmlDoc.Close(); doc.Close(); pdfToHtml.Destroy(); pdfix.Destroy(); }
public static void Run( String email, // authorization email String licenseKey, // authorization license key String openPath, // source PDF document String savePath, // output folder for HTML content String configPath, // configuration file PdfHtmlParams htmlParams // html conversion params ) { Pdfix pdfix = new Pdfix(); if (pdfix == null) { throw new Exception("Pdfix initialization fail"); } if (!pdfix.Authorize(email, licenseKey)) { throw new Exception(pdfix.GetError()); } PdfToHtml pdfToHtml = new PdfToHtml(); if (pdfToHtml == null) { throw new Exception("PdfToHtml initialization fail"); } if (!pdfToHtml.Initialize(pdfix)) { throw new Exception(pdfix.GetError()); } PdfDoc doc = pdfix.OpenDoc(openPath, ""); if (doc == null) { throw new Exception(pdfix.GetError()); } // customize conversion PsFileStream stm = pdfix.CreateFileStream(configPath, PsFileMode.kPsReadOnly); if (stm != null) { PdfDocTemplate docTmpl = doc.GetDocTemplate(); if (docTmpl == null) { throw new Exception(pdfix.GetError()); } if (!docTmpl.LoadFromStream(stm, PsDataFormat.kDataFormatJson)) { throw new Exception(pdfix.GetError()); } stm.Destroy(); } // set html conversion params //htmlParams.type = PdfHtmlType.kPdfHtmlResponsive; //htmlParams.width = 1200; //htmlParams.flags |= PdfToHtml.kHtmlExportJavaScripts; //htmlParams.flags |= PdfToHtml.kHtmlExportFonts; //htmlParams.flags |= PdfToHtml.kHtmlRetainFontSize; //htmlParams.flags |= PdfToHtml.kHtmlRetainTextColor; htmlParams.flags |= PdfToHtml.kHtmlNoExternalCSS | PdfToHtml.kHtmlNoExternalJS | PdfToHtml.kHtmlNoExternalIMG | PdfToHtml.kHtmlNoExternalFONT; PdfHtmlDoc htmlDoc = pdfToHtml.OpenHtmlDoc(doc); if (htmlDoc == null) { throw new Exception(pdfix.GetError()); } // save common js and css for all pages PsStream docCss = pdfix.CreateFileStream(savePath + "/document.css", PsFileMode.kPsTruncate); if (!pdfToHtml.SaveCSS(docCss)) { throw new Exception(pdfix.GetError()); } docCss.Destroy(); PsStream docJs = pdfix.CreateFileStream(savePath + "/document.js", PsFileMode.kPsTruncate); if (!pdfToHtml.SaveJavaScript(docJs)) { throw new Exception(pdfix.GetError()); } docJs.Destroy(); PsStream docStm = pdfix.CreateFileStream(savePath + "/document.html", PsFileMode.kPsTruncate); if (!htmlDoc.SaveDocHtml(docStm, htmlParams, null, IntPtr.Zero)) { throw new Exception(pdfix.GetError()); } docStm.Destroy(); for (int i = 0; i < doc.GetNumPages(); i++) { string pageFile = savePath + "/document_page" + i + ".html"; PsStream pageStm = pdfix.CreateFileStream(pageFile, PsFileMode.kPsTruncate); if (!htmlDoc.SavePageHtml(pageStm, htmlParams, i, null, IntPtr.Zero)) { throw new Exception(pdfix.GetError()); } pageStm.Destroy(); } htmlDoc.Close(); doc.Close(); pdfToHtml.Destroy(); pdfix.Destroy(); }