00001
00002
00003
00004
00005
00006 #ifndef PDFTRON_H_CPPWPDFPDFA
00007 #define PDFTRON_H_CPPWPDFPDFA
00008
00009
00010 #include <C/PDF/PDFA/TRN_PDFACompliance.h>
00011 #include <Common/UString.h>
00012
00013
00014 namespace pdftron {
00015 namespace PDF {
00016 namespace PDFA {
00017
00051 class PDFACompliance
00052 {
00053 public:
00054
00067 enum Conformance {
00068 e_Level1A,
00069 e_Level1B
00070 };
00071
00072 enum ErrorCode
00073 {
00074
00075 e_PDFA0_1_1 =11,
00076 e_PDFA0_1_2 =12,
00077 e_PDFA0_1_3 =13,
00078 e_PDFA0_1_4 =14,
00079 e_PDFA0_1_5 =15,
00080 e_PDFA1_2_1 =121,
00081 e_PDFA1_2_2 =122,
00082 e_PDFA1_3_1 =131,
00083 e_PDFA1_3_2 =132,
00084 e_PDFA1_3_3 =133,
00085 e_PDFA1_3_4 =134,
00086 e_PDFA1_4_1 =141,
00087 e_PDFA1_4_2 =142,
00088 e_PDFA1_6_1 =161,
00089 e_PDFA1_7_1 =171,
00090 e_PDFA1_7_2 =172,
00091 e_PDFA1_7_3 =173,
00092 e_PDFA1_7_4 =174,
00093 e_PDFA1_8_1 =181,
00094 e_PDFA1_8_2 =182,
00095 e_PDFA1_8_3 =183,
00096 e_PDFA1_8_4 =184,
00097 e_PDFA1_8_5 =185,
00098 e_PDFA1_8_6 =186,
00099 e_PDFA1_10_1 =1101,
00100 e_PDFA1_11_1 =1111,
00101 e_PDFA1_11_2 =1112,
00102 e_PDFA1_12_1 =1121,
00103 e_PDFA1_12_2 =1122,
00104 e_PDFA1_12_3 =1123,
00105 e_PDFA1_12_4 =1124,
00106 e_PDFA1_12_5 =1125,
00107 e_PDFA1_12_6 =1126,
00108 e_PDFA1_13_1 =1131,
00109 e_PDFA2_2_1 =221,
00110 e_PDFA2_3_2 =232,
00111 e_PDFA2_3_3 =233,
00112 e_PDFA2_3_3_1=2331,
00113 e_PDFA2_3_3_2=2332,
00114 e_PDFA2_3_4_1=2341,
00115 e_PDFA2_4_1 =241,
00116 e_PDFA2_4_2 =242,
00117 e_PDFA2_4_3 =243,
00118 e_PDFA2_4_4 =244,
00119 e_PDFA2_5_1 =251,
00120 e_PDFA2_5_2 =252,
00121 e_PDFA2_6_1 =261,
00122 e_PDFA2_7_1 =271,
00123 e_PDFA2_8_1 =281,
00124 e_PDFA2_9_1 =291,
00125 e_PDFA2_10_1 =2101,
00126 e_PDFA3_2_1 =321,
00127 e_PDFA3_3_1 =331,
00128 e_PDFA3_3_2 =332,
00129 e_PDFA3_3_3_1=3331,
00130 e_PDFA3_3_3_2=3332,
00131 e_PDFA3_4_1 =341,
00132 e_PDFA3_5_1 =351,
00133 e_PDFA3_5_2 =352,
00134 e_PDFA3_5_3 =353,
00135 e_PDFA3_5_4 =354,
00136 e_PDFA3_5_5 =355,
00137 e_PDFA3_6_1 =361,
00138 e_PDFA3_7_1 =371,
00139 e_PDFA3_7_2 =372,
00140 e_PDFA3_7_3 =373,
00141 e_PDFA4_1 =41,
00142 e_PDFA4_2 =42,
00143 e_PDFA4_3 =43,
00144 e_PDFA4_4 =44,
00145 e_PDFA4_5 =45,
00146 e_PDFA4_6 =46,
00147 e_PDFA5_2_1 =521,
00148 e_PDFA5_2_2 =522,
00149 e_PDFA5_2_3 =523,
00150 e_PDFA5_2_4 =524,
00151 e_PDFA5_2_5 =525,
00152 e_PDFA5_2_6 =526,
00153 e_PDFA5_2_7 =527,
00154 e_PDFA5_2_8 =528,
00155 e_PDFA5_2_9 =529,
00156 e_PDFA5_2_10 =5210,
00157 e_PDFA5_2_11 =5211,
00158 e_PDFA5_3_1 =531,
00159 e_PDFA5_3_2_1=5321,
00160 e_PDFA5_3_2_2=5322,
00161 e_PDFA5_3_2_3=5323,
00162 e_PDFA5_3_2_4=5324,
00163 e_PDFA5_3_2_5=5325,
00164 e_PDFA5_3_3_1=5331,
00165 e_PDFA5_3_3_2=5332,
00166 e_PDFA5_3_3_3=5333,
00167 e_PDFA5_3_3_4=5334,
00168 e_PDFA5_3_4_1=5341,
00169 e_PDFA5_3_4_2=5342,
00170 e_PDFA5_3_4_3=5343,
00171 e_PDFA6_1_1 =611,
00172 e_PDFA6_1_2 =612,
00173 e_PDFA6_2_1 =621,
00174 e_PDFA6_2_2 = 622,
00175 e_PDFA6_2_3 = 623,
00176 e_PDFA7_2_1 =721,
00177 e_PDFA7_2_2 =722,
00178 e_PDFA7_2_3 =723,
00179 e_PDFA7_2_4 =724,
00180 e_PDFA7_2_5 =725,
00181 e_PDFA7_3_1 =731,
00182 e_PDFA7_3_2 =732,
00183 e_PDFA7_3_3 =733,
00184 e_PDFA7_3_4 =734,
00185 e_PDFA7_3_5 =735,
00186 e_PDFA7_3_6 =736,
00187 e_PDFA7_3_7 =737,
00188 e_PDFA7_3_8 =738,
00189 e_PDFA7_3_9 =739,
00190 e_PDFA7_5_1 =751,
00191 e_PDFA7_8_1 =781,
00192 e_PDFA7_8_2 =782,
00193 e_PDFA7_8_3 =783,
00194 e_PDFA7_8_4 =784,
00195 e_PDFA7_8_5 =785,
00196 e_PDFA7_8_6 =786,
00197 e_PDFA7_8_7 =787,
00198 e_PDFA7_8_8 =788,
00199 e_PDFA7_8_9 =789,
00200 e_PDFA7_8_10 =7810,
00201 e_PDFA7_8_11 =7811,
00202 e_PDFA7_8_12 =7812,
00203 e_PDFA7_8_13 =7813,
00204 e_PDFA7_8_14 =7814,
00205 e_PDFA7_8_15 =7815,
00206 e_PDFA7_8_16 =7816,
00207 e_PDFA7_8_17 =7817,
00208 e_PDFA7_8_18= 7818,
00209 e_PDFA7_8_19= 7819,
00210 e_PDFA7_8_20 =7820,
00211 e_PDFA7_8_21 =7821,
00212 e_PDFA7_8_22 =7822,
00213 e_PDFA7_8_23 =7823,
00214 e_PDFA7_8_24 =7824,
00215 e_PDFA7_8_25 =7825,
00216 e_PDFA7_8_26 =7826,
00217 e_PDFA7_8_27 =7827,
00218 e_PDFA7_8_28 =7828,
00219 e_PDFA7_8_29 =7829,
00220 e_PDFA7_8_30 =7830,
00221 e_PDFA7_8_31 =7831,
00222 e_PDFA7_11_1 =7111,
00223 e_PDFA7_11_2 =7112,
00224 e_PDFA7_11_3 =7113,
00225 e_PDFA7_11_4 =7114,
00226 e_PDFA7_11_5 =7115,
00227 e_PDFA9_1 =91,
00228 e_PDFA9_2 =92,
00229
00230
00231 e_PDFA3_8_1 =381,
00232 e_PDFA8_2_2 =822,
00233 e_PDFA8_3_3_1=8331,
00234 e_PDFA8_3_3_2=8332,
00235 e_PDFA8_3_4_1=8341,
00236
00237 e_PDFA_LAST
00238 };
00239
00240
00255 PDFACompliance(bool convert, const UString& file_path, const char* password = 0, Conformance conf = e_Level1B, ErrorCode* exceptions = 0, int num_exceptions = 0, int max_ref_objs = 10, bool first_stop = false);
00256
00273 PDFACompliance(bool convert, const char* buf, size_t buf_size, const char* password = 0, Conformance conf = e_Level1B, ErrorCode* exceptions = 0, int num_exceptions = 0, int max_ref_objs = 10, bool first_stop = false);
00274
00275
00284 void SaveAs(const UString& file_path, bool linearized = false);
00285
00297 void SaveAs(const char* &out_buf, size_t& out_buf_size, bool linearized = false);
00298
00302 size_t GetErrorCount();
00303
00311 PDFACompliance::ErrorCode GetError(size_t idx);
00312
00317 size_t GetRefObjCount(ErrorCode id);
00318
00330 size_t GetRefObj(ErrorCode id, size_t obj_idx);
00331
00336 static const char* GetPDFAErrorMessage(ErrorCode id);
00337
00341 ~PDFACompliance();
00342
00344 PDFACompliance(TRN_PDFACompliance impl) : mp_pdfac(impl) {}
00345 TRN_PDFACompliance mp_pdfac;
00347 private:
00348 PDFACompliance(const PDFACompliance&);
00349 PDFACompliance& operator= (const PDFACompliance&);
00350 };
00351
00352
00353 };
00354 };
00355 };
00356
00357 #include <Impl/PDFACompliance.inl>
00358 #endif