00001
00002
00003
00004
00005
00006 #ifndef H_CPPPRINT
00007 #define H_CPPPRINT
00008
00009 #include <PDF/PDFDoc.h>
00010 #include <C/PDF/TRN_Print.h>
00011 #include <SDF/Obj.h>
00012 #include <SDF/ObjSet.h>
00013 #include <PDF/PageSet.h>
00014
00015 namespace pdftron{
00016 namespace PDF {
00017
00022 class PrinterMode;
00023
00024 class Print {
00025 public:
00026
00027
00047 static void StartPrintJob(
00048 PDFDoc & in_pdfdoc,
00049 const UString & in_printerName,
00050 const UString & in_jobName,
00051 const UString & in_outputFileName,
00052 PageSet * in_pagesToPrint = NULL,
00053 PrinterMode * in_printerMode = NULL,
00054 volatile bool * in_cancel = NULL);
00055
00077 static void StartPrintJob(
00078 PDFDoc & in_pdfdoc,
00079 const char * in_printerName,
00080 const char * in_jobName,
00081 const char * in_outputFileName,
00082 PageSet * in_pagesToPrint = NULL,
00083 PrinterMode * in_printerMode = NULL,
00084 volatile bool * in_cancel = NULL);
00085
00086
00087 };
00088
00089
00090
00095 class PrinterMode
00096 {
00097 public:
00101 enum PaperSize {
00102 e_custom = 0,
00103 e_letter,
00104 e_letter_small,
00105 e_tabloid,
00106 e_ledger,
00107 e_legal,
00108 e_statement,
00109 e_executive,
00110 e_a3,
00111 e_a4,
00112 e_a4_small,
00113 e_a5,
00114 e_b4_jis,
00115 e_b5_jis,
00116 e_folio,
00117 e_quarto,
00118 e_10x14,
00119 e_11x17,
00120 e_note,
00121 e_envelope_9,
00122 e_envelope_10,
00123 e_envelope_11,
00124 e_envelope_12,
00125 e_envelope_14,
00126 e_c_size_sheet,
00127 e_d_size_sheet,
00128 e_e_size_sheet,
00129 e_envelope_dl,
00130 e_envelope_c5,
00131 e_envelope_c3,
00132 e_envelope_c4,
00133 e_envelope_c6,
00134 e_envelope_c65,
00135 e_envelope_b4,
00136 e_envelope_b5,
00137 e_envelope_b6,
00138 e_envelope_italy,
00139 e_envelope_monarch,
00140 e_6_3_quarters_envelope,
00141 e_us_std_fanfold,
00142 e_german_std_fanfold,
00143 e_german_legal_fanfold,
00144 e_b4_iso,
00145 e_japanese_postcard,
00146 e_9x11,
00147 e_10x11,
00148 e_15x11,
00149 e_envelope_invite,
00150 e_reserved_48,
00151 e_reserved_49,
00152 e_letter_extra,
00153 e_legal_extra,
00154 e_tabloid_extra,
00155 e_a4_extra,
00156 e_letter_transverse,
00157 e_a4_transverse,
00158 e_letter_extra_transverse,
00159 e_supera_supera_a4,
00160 e_Superb_Superb_a3,
00161 e_letter_plus,
00162 e_a4_plus,
00163 e_a5_transverse,
00164 e_b5_jis_transverse,
00165 e_a3_extra,
00166 e_a5_extra,
00167 e_b5_iso_extra,
00168 e_a2,
00169 e_a3_transverse,
00170 e_a3_extra_transverse,
00171 e_japanese_double_postcard,
00172 e_a6,
00173 e_japanese_envelope_kaku_2,
00174 e_japanese_envelope_kaku_3,
00175 e_japanese_envelope_chou_3,
00176 e_japanese_envelope_chou_4,
00177 e_letter_rotated,
00178 e_a3_rotated,
00179 e_a4_rotated,
00180 e_a5_rotated,
00181 e_b4_jis_rotated,
00182 e_b5_jis_rotated,
00183 e_japanese_postcard_rotated,
00184 e_double_japanese_postcard_rotated,
00185 e_a6_rotated,
00186 e_japanese_envelope_kaku_2_rotated,
00187 e_japanese_envelope_kaku_3_rotated,
00188 e_japanese_envelope_chou_3_rotated,
00189 e_japanese_envelope_chou_4_rotated,
00190 e_b6_jis,
00191 e_b6_jis_rotated,
00192 e_12x11,
00193 e_japanese_envelope_you_4,
00194 e_japanese_envelope_you_4_rotated,
00195 e_prc_16k,
00196 e_prc_32k,
00197 e_prc_32k_big,
00198 e_prc_envelop_1,
00199 e_prc_envelop_2,
00200 e_prc_envelop_3,
00201 e_prc_envelop_4,
00202 e_prc_envelop_5,
00203 e_prc_envelop_6,
00204 e_prc_envelop_7,
00205 e_prc_envelop_8,
00206 e_prc_envelop_9,
00207 e_prc_envelop_10,
00208 e_prc_16k_rotated,
00209 e_prc_32k_rotated,
00210 e_prc_32k_big__rotated,
00211 e_prc_envelop_1_rotated,
00212 e_prc_envelop_2_rotated,
00213 e_prc_envelop_3_rotated,
00214 e_prc_envelop_4_rotated,
00215 e_prc_envelop_5_rotated,
00216 e_prc_envelop_6_rotated,
00217 e_prc_envelop_7_rotated,
00218 e_prc_envelop_8_rotated,
00219 e_prc_envelop_9_rotated,
00220 e_prc_envelop_10_rotated,
00221 };
00222
00224 enum DuplexMode {
00225 e_Duplex_Auto = 0,
00226 e_Duplex_None = 1,
00227 e_Duplex_LongSide = 2,
00228 e_Duplex_ShortSide = 3
00229 };
00230
00232 enum OutputQuality {
00233 e_OutputQuality_Draft = -1,
00234 e_OutputQuality_Low = -2,
00235 e_OutputQuality_Medium = -3,
00236 e_OutputQuality_High = -4
00237 };
00238
00240 enum OutputColor {
00241 e_OutputColor_Color = 0,
00242 e_OutputColor_Grayscale = 1,
00243 e_OutputColor_Monochrome = 2,
00244 };
00245
00247 enum Orientation
00248 {
00249 e_Orientation_Portrait = 0,
00250 e_Orientation_Landscape = 1
00251 };
00252
00254 enum ScaleType {
00255 e_ScaleType_None = 0,
00256 e_ScaleType_FitToOutputPage = 1,
00257 e_ScaleType_ReduceToOutputPage = 2
00258 };
00259
00262 enum NUp {
00263 e_NUp_1_1 = 0,
00264 e_NUp_2_1 = 1,
00265 e_NUp_2_2 = 2,
00266 e_NUp_3_2 = 3,
00267 e_NUp_3_3 = 4,
00268 e_NUp_4_4 = 5,
00269 };
00270
00273 enum NUpPageOrder {
00274 e_PageOrder_LeftToRightThenTopToBottom = 0,
00275 e_PageOrder_RightToLeftThenTopToBottom = 1,
00276 e_PageOrder_TopToBottomThenLeftToRight = 2,
00277 e_PageOrder_BottomToTopThenLeftToRight = 3
00278 };
00279
00281 enum PrintContentTypes {
00282 e_PrintContent_DocumentOnly = 0,
00283 e_PrintContent_DocumentAndAnnotations = 1,
00284 e_PrintContent_DocumentAnnotationsAndComments = 2
00285 };
00286
00287
00288 PrinterMode();
00289 ~PrinterMode();
00290
00297 void SetAutoCenter(bool autoCenter);
00298
00305 void SetAutoRotate(bool autoRotate);
00306
00314 void SetCollation( bool collation );
00315
00322 void SetCopyCount( int copyCount );
00323
00331 void SetDPI( int dpi );
00332
00339 void SetDuplexing( DuplexMode mode );
00340
00351 void SetNUp(NUp nup, NUpPageOrder pageOrder = e_PageOrder_LeftToRightThenTopToBottom);
00352
00365 void SetNUp(unsigned int x, unsigned int y, NUpPageOrder pageOrder = e_PageOrder_LeftToRightThenTopToBottom);
00366
00373 void SetOrientation(Orientation orientation);
00374
00382 void SetOutputAnnot(PrintContentTypes printContent);
00383
00394 void SetOutputColor( OutputColor color );
00395
00403 void SetOutputQuality( OutputQuality quality );
00404
00412 void SetOutputPageBorder(bool printBorder);
00413
00420 void SetPaperSize(const Rect & size = Rect(0, 0, 612, 791) );
00421
00426 void SetPaperSize(pdftron::PDF::PrinterMode::PaperSize paperSize);
00427
00436 void SetScale(double scale);
00437
00444 void SetScaleType(ScaleType scaleType);
00445
00453 void SetUseRleImageCompression( bool useRleImageCompression );
00454
00455
00457 #ifndef SWIGHIDDEN
00458 SDF::Obj m_printerMode;
00459 #endif
00461 private:
00462 SDF::ObjSet m_printerModeSet;
00463 };
00464
00465 };
00466 };
00467
00468 #include <Impl/Print.inl>
00469
00470 #endif // H_CPPPRINT
00471