Esempio n. 1
0
            public bool SaveDocHtml(PsStream _stream, PdfHtmlParams _params, PdfCancelProc _cancel_proc, IntPtr _cancel_data)
            {
                CheckBaseObj();
                PdfHtmlParamsInt _paramsInt  = _params.GetIntStruct();
                IntPtr           _params_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(PdfHtmlParamsInt)));

                Marshal.StructureToPtr(_paramsInt, _params_ptr, true);
                byte ret = PdfHtmlDocSaveDocHtml(m_obj, _stream == null ? IntPtr.Zero : _stream.m_obj, _params_ptr, _cancel_proc, _cancel_data);

                Marshal.FreeHGlobal(_params_ptr);
                _params_ptr = IntPtr.Zero;
                return(ret != 0);
            }
        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();
        }
Esempio n. 3
0
 internal static byte PdfHtmlDocSavePageHtml(IntPtr obj, IntPtr _stream, IntPtr _params, int _page_num, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data)
 {
     if (Util.Is64BitProcess())
     {
         return(PdfHtmlDocSavePageHtml64(obj, _stream, _params, _page_num, _cancel_proc, _cancel_data));
     }
     else
     {
         return(PdfHtmlDocSavePageHtml32(obj, _stream, _params, _page_num, _cancel_proc, _cancel_data));
     }
 }
Esempio n. 4
0
 internal static extern byte PdfHtmlDocSavePageHtml64(IntPtr obj, IntPtr _stream, IntPtr _params, int _page_num, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data);
Esempio n. 5
0
 internal static byte PdfHtmlDocSave(IntPtr obj, string _path, IntPtr _params, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data)
 {
     if (Util.Is64BitProcess())
     {
         return(PdfHtmlDocSave64(obj, _path, _params, _cancel_proc, _cancel_data));
     }
     else
     {
         return(PdfHtmlDocSave32(obj, _path, _params, _cancel_proc, _cancel_data));
     }
 }
Esempio n. 6
0
 internal static extern byte PdfHtmlDocSave64(IntPtr obj, string _path, IntPtr _params, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data);
 internal static byte TesseractDocOcrImageToPage(IntPtr obj, IntPtr _image, IntPtr _matrix, IntPtr _page, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data)
 {
     if (Util.Is64BitProcess())
     {
         return(TesseractDocOcrImageToPage64(obj, _image, _matrix, _page, _cancel_proc, _cancel_data));
     }
     else
     {
         return(TesseractDocOcrImageToPage32(obj, _image, _matrix, _page, _cancel_proc, _cancel_data));
     }
 }
 internal static extern byte TesseractDocOcrImageToPage64(IntPtr obj, IntPtr _image, IntPtr _matrix, IntPtr _page, [MarshalAs(UnmanagedType.FunctionPtr)] PdfCancelProc _cancel_proc, IntPtr _cancel_data);
            public bool OcrImageToPage(PsImage _image, PdfMatrix _matrix, PdfPage _page, PdfCancelProc _cancel_proc, IntPtr _cancel_data)
            {
                CheckBaseObj();
                PdfMatrixInt _matrixInt  = _matrix.GetIntStruct();
                IntPtr       _matrix_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(PdfMatrixInt)));

                Marshal.StructureToPtr(_matrixInt, _matrix_ptr, true);
                byte ret = TesseractDocOcrImageToPage(m_obj, _image == null ? IntPtr.Zero : _image.m_obj, _matrix_ptr, _page == null ? IntPtr.Zero : _page.m_obj, _cancel_proc, _cancel_data);

                Marshal.FreeHGlobal(_matrix_ptr);
                _matrix_ptr = IntPtr.Zero;
                return(ret != 0);
            }