00001
00002
00003
00004
00005
00006 #ifndef H_CPPCONVERTER
00007 #define H_CPPCONVERTER
00008
00009 #include <PDF/PDFDoc.h>
00010 #include <C/PDF/TRN_Convert.h>
00011 #include <SDF/Obj.h>
00012 #include <SDF/ObjSet.h>
00013
00014 namespace pdftron{
00015 namespace PDF {
00016
00060 class Convert
00061 {
00062 public:
00072 static void FromXps(PDFDoc & in_pdfdoc, const UString & in_filename);
00073
00085 static void FromXps(PDFDoc & in_pdfdoc, const char* buf, size_t buf_sz);
00086
00097 static void FromEmf(PDFDoc & in_pdfdoc, const UString & in_filename);
00098
00108 static void ToEmf(PDFDoc & in_pdfdoc, const UString & in_filename);
00109
00119 static void ToEmf(Page & in_page, const UString & in_filename);
00120
00124 class SVGOutputOptions
00125 {
00126 public:
00130 SVGOutputOptions();
00131
00136 void SetEmbedImages(bool embed_images);
00137
00142 void SetNoFonts(bool no_fonts);
00143
00148 void SetNoUnicode(bool no_unicode);
00149
00154 void SetIndividualCharPlacement(bool individual_char_placement);
00155
00160 void SetRemoveCharPlacement(bool remove_char_placement);
00161 protected:
00162 TRN_Obj m_obj;
00163 friend class Convert;
00164 SDF::ObjSet m_objset;
00165 };
00166
00176 static void ToSvg(PDFDoc & in_pdfdoc, const UString & in_filename, const SVGOutputOptions& in_options = SVGOutputOptions());
00177
00187 static void ToSvg(Page & in_page, const UString & in_filename, const SVGOutputOptions& in_options = SVGOutputOptions());
00188
00192 class XPSOutputCommonOptions
00193 {
00194 public:
00198 XPSOutputCommonOptions();
00204 void SetPrintMode(bool print_mode);
00205
00211 void SetDPI(UInt32 dpi);
00212
00218 void SetRenderPages(bool render);
00219
00225 void SetThickenLines(bool thicken);
00226 protected:
00227 TRN_Obj m_obj;
00228 friend class Convert;
00229 SDF::ObjSet m_objset;
00230 };
00231
00235 class XPSOutputOptions : public XPSOutputCommonOptions
00236 {
00237 public:
00243 void SetOpenXps(bool openxps);
00244 };
00245
00249 class XODOutputOptions : public XPSOutputCommonOptions
00250 {
00251 public:
00257 void SetOutputThumbnails(bool include_thumbs);
00258
00264 void SetElementLimit(UInt32 element_limit);
00265
00272 void SetOpacityMaskWorkaround(bool opacity_render);
00273 };
00274
00287 static void ToXps(PDFDoc & in_pdfdoc, const UString & in_filename, const XPSOutputOptions& options = XPSOutputOptions());
00288
00305 static void ToXps(const UString & in_inputFilename, const UString & in_outputFilename, const XPSOutputOptions& options = XPSOutputOptions());
00306
00323 static void ToXod(const UString & in_filename, const UString & out_filename, const XODOutputOptions& options = XODOutputOptions());
00324
00339 static void ToXod(PDFDoc & in_pdfdoc, const UString & out_filename, const XODOutputOptions& options = XODOutputOptions());
00340
00359 static Filters::Filter ToXod(const UString & in_filename, const XODOutputOptions& options = XODOutputOptions());
00360
00377 static Filters::Filter ToXod(PDFDoc & in_pdfdoc, const XODOutputOptions& options = XODOutputOptions());
00378
00379
00380
00400 static void ToPdf(PDFDoc & in_pdfdoc, const UString & in_filename);
00401
00414 static bool RequiresPrinter(const UString & in_filename);
00415
00420 class Printer
00421 {
00422 public:
00437 static void Install(const UString & in_printerName = "PDFTron PDFNet");
00438
00446 static void Uninstall();
00447
00456 static const UString GetPrinterName();
00457
00466 static void SetPrinterName(const UString & in_printerName = "PDFTron PDFNet");
00467
00479 static bool IsInstalled(const UString & in_printerName = "PDFTron PDFNet");
00480
00481
00482 };
00483
00484 private:
00485 Convert ();
00486 ~Convert ();
00487 };
00488
00489 #include <Impl/Convert.inl>
00490
00491 };
00492 };
00493
00494 #endif // H_CPPCONVERTER