/* Antenna House PDF Tool API V8.0 .NET Interface sample program 概要:PDF/A,PDF/E-1への変換 Copyright 2021-2025 Antenna House,Inc. */ using System; using PdfTkNet; if (args.Length < 3) { Console.WriteLine("usage: FixUpPDFA.exe in-pdf-file out-pdf-file"); Console.WriteLine("規格\n1 : PDF/A-1b 2 : PDF/A-2b 3 : PDF/A-3b 4 : PDF/A-1a 5 : PDF/A-2a 6 : PDF/A-3a 7 : PDF/A-4 8 : PDF/E-1"); return; } try { using (PtlParamInput inputFile = new PtlParamInput(args[0])) using (PtlParamOutput outputFile = new PtlParamOutput(args[1])) using (PtlPDFFixUp fix = new PtlPDFFixUp()) using (PtlParamInput iccpcmyk = new PtlParamInput(@"JapanColor2001Coated.icc")) using (PtlParamInput iccprgb = new PtlParamInput(@"sRGB2014.icc")) { PtlPDFFixUp.PDFA_TYPE type = PtlPDFFixUp.PDFA_TYPE.PDFA_2B; string desc; bool pdfe1 = false; switch (args[2]) { case "1": type = PtlPDFFixUp.PDFA_TYPE.PDFA_1B; desc = "PDF/A-1b"; break; case "2": type = PtlPDFFixUp.PDFA_TYPE.PDFA_2B; desc = "PDF/A-2b"; break; case "3": type = PtlPDFFixUp.PDFA_TYPE.PDFA_3B; desc = "PDF/A-3b"; break; case "4": type = PtlPDFFixUp.PDFA_TYPE.PDFA_1A; desc = "PDF/A-1a"; break; case "5": type = PtlPDFFixUp.PDFA_TYPE.PDFA_2A; desc = "PDF/A-2a"; break; case "6": type = PtlPDFFixUp.PDFA_TYPE.PDFA_3A; desc = "PDF/A-3a"; break; case "7": type = PtlPDFFixUp.PDFA_TYPE.PDFA_4; desc = "PDF/A-4"; break; case "8": pdfe1 = true; desc = "PDF/E-1"; break; default: Console.WriteLine("usage: FixUpPDFA.exe in-pdf-file out-pdf-file"); Console.WriteLine("規格\n1 : PDF/A-1b 2 : PDF/A-2b 3 : PDF/A-3b 4 : PDF/A-1a 5 : PDF/A-2a 6 : PDF/A-3a 7 : PDF/A-4 8 : PDF/E-1"); return; } fix.setSaveOption(PtlPDFFixUp.SAVE_OPTION.SAVE_RECONSTRUCT); //保存時のオプションを設定 fix.setICCProfileCMYK(iccpcmyk); //出力インテントのプロファイル(CMYK用) fix.setICCProfileRGB(iccprgb); //出力インテントのプロファイル(RGB用) bool bl; if (pdfe1) { // PDF/E-1への変換 bl = fix.fixUpPDFE(inputFile); } else { // PDF/Aへの変換 bl = fix.fixUpPDFA(type, inputFile); } if (bl) { Console.WriteLine(desc + "への変換に成功しました。"); } else { Console.WriteLine(desc + "への変換に失敗しました。"); //変換エラーの内容を取得する using (PtlPDFFixUpErrors fxuperrs = fix.getErrors()) { int count = fxuperrs.getCount(); Console.WriteLine("エラー数 : " + count); for (int i = 0; i < count; i++) { using (PtlPDFFixUpError fxuperr = fxuperrs.get(i)) { Console.WriteLine(fxuperr.getErrorCode() + " : " + fxuperr.getErrorMessageJP()); } } } } // PDF文書を保存 fix.save(outputFile); } Console.WriteLine("-- 完了 --"); } catch (PtlException pex) { Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP()); pex.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.Message); }