/* ----------------------------------------------------------------- */ /// /// ToIndex /// /// <summary> /// PdfVersions からコンボボックスのインデックスに変換します。 /// </summary> /// /* ----------------------------------------------------------------- */ public static int ToIndex(Parameter.PdfVersions id) { foreach (Parameter.PdfVersions x in Enum.GetValues(typeof(Parameter.PdfVersions))) { if (x == id) { return((int)id); } } return((int)Parameter.PdfVersions.Ver1_7); }
/* ----------------------------------------------------------------- */ /// /// PDFVersionString /// /// <summary> /// PDFVersions の各値に対応する文字列を取得します。 /// </summary> /// /* ----------------------------------------------------------------- */ public static string PDFVersionString(Parameter.PdfVersions id) { if (id == Parameter.PdfVersions.VerPDFA) { return(""); //"PDF/A"; } else if (id == Parameter.PdfVersions.VerPDFX) { return(""); //"PDF/X"; } return(Parameter.PdfVersionValue(id).ToString()); }
public void TestRunAsPdf(Parameter.PdfVersions pdfver, Parameter.Orientations orient, bool webopt, bool embed) { var setting = CreateSetting(); setting.PDFVersion = pdfver; setting.Orientation = orient; setting.WebOptimize = webopt; setting.EmbedFont = embed; var suffix = string.Format("-{0}-{1}", pdfver, orient); if (webopt) { suffix += "-webopt"; } if (!embed) { suffix += "-noembed"; } AssertRun(setting, suffix); }
/* ----------------------------------------------------------------- */ /// /// PdfVersionToiText /// /// <summary> /// PdfVersions 列挙型を対応する iTextSharp の型に変換します。 /// </summary> /// /* ----------------------------------------------------------------- */ private char PdfVersionToiText(Parameter.PdfVersions id) { switch (id) { case Parameter.PdfVersions.Ver1_7: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_7); case Parameter.PdfVersions.Ver1_6: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_6); case Parameter.PdfVersions.Ver1_5: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_5); case Parameter.PdfVersions.Ver1_4: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_4); case Parameter.PdfVersions.Ver1_3: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_3); case Parameter.PdfVersions.Ver1_2: return(iTextSharp.text.pdf.PdfWriter.VERSION_1_2); default: break; } return(iTextSharp.text.pdf.PdfWriter.VERSION_1_7); }
/* ----------------------------------------------------------------- */ /// /// GetMinorVersion /// /// <summary> /// PDF バージョンの小数点以下の値を取得します。 /// </summary> /// /* ----------------------------------------------------------------- */ private int GetMinorVersion(Parameter.PdfVersions pdfver) { switch (pdfver) { case Parameter.PdfVersions.Ver1_2: return(2); case Parameter.PdfVersions.Ver1_3: return(3); case Parameter.PdfVersions.Ver1_4: return(4); case Parameter.PdfVersions.Ver1_5: return(5); case Parameter.PdfVersions.Ver1_6: return(6); case Parameter.PdfVersions.Ver1_7: return(7); case Parameter.PdfVersions.VerPDFA: return(3); case Parameter.PdfVersions.VerPDFX: return(3); default: return(7); } }
/* ----------------------------------------------------------------- */ /// /// LoadIndices /// /// <summary> /// CubePdf.Settings.Document オブジェクトから CubePDF メイン画面で /// 表示されているコンボボックスのインデックス関連の情報を抽出して、 /// 対応する変数にロードします。 /// </summary> /// /* ----------------------------------------------------------------- */ private void LoadIndices(CubePdf.Settings.Document document) { var filetype = document.Root.Find(_RegFileType); if (filetype != null) { foreach (int item in Enum.GetValues(typeof(Parameter.FileTypes))) { if (item == (int)filetype.Value) { _type = (Parameter.FileTypes)filetype.Value; break; } } } var pdfversion = document.Root.Find(_RegPdfVersion); if (pdfversion != null) { foreach (int item in Enum.GetValues(typeof(Parameter.PdfVersions))) { if (item == (int)pdfversion.Value) { _pdfver = (Parameter.PdfVersions)pdfversion.Value; break; } } } var resolution = document.Root.Find(_RegResolution); if (resolution != null) { foreach (int item in Enum.GetValues(typeof(Parameter.Resolutions))) { if (item == (int)resolution.Value) { _resolution = (Parameter.Resolutions)resolution.Value; break; } } } var exist = document.Root.Find(_RegExistedFile); if (exist != null) { foreach (int item in Enum.GetValues(typeof(Parameter.ExistedFiles))) { if (item == (int)exist.Value) { _exist = (Parameter.ExistedFiles)exist.Value; break; } } } var postproc = document.Root.Find(_RegPostProcess); if (postproc != null) { foreach (int item in Enum.GetValues(typeof(Parameter.PostProcesses))) { if (item == (int)postproc.Value) { _postproc = (Parameter.PostProcesses)postproc.Value; break; } } } var downsampling = document.Root.Find(_RegDownSampling); if (downsampling != null) { foreach (int item in Enum.GetValues(typeof(Parameter.DownSamplings))) { if (item == (int)downsampling.Value) { _downsampling = (Parameter.DownSamplings)downsampling.Value; break; } } } var filter = document.Root.Find(_RegImageFilter); if (filter != null) { foreach (int item in Enum.GetValues(typeof(Parameter.ImageFilters))) { if (item == (int)filter.Value) { _filter = (Parameter.ImageFilters)filter.Value; break; } } } var save = document.Root.Find(_RegSaveSetting); if (save != null) { foreach (int item in Enum.GetValues(typeof(Parameter.SaveSettings))) { if (item == (int)save.Value) { _save = (Parameter.SaveSettings)save.Value; break; } } } }
/* ----------------------------------------------------------------- */ /// /// UpgradeFromV1 /// /// <summary> /// 過去のバージョンのレジストリを読み込み、現行バージョンに対応 /// した形に変換します。 /// </summary> /// /* ----------------------------------------------------------------- */ public bool UpgradeFromV1(string root) { bool status = true; try { // ユーザ設定を読み込む RegistryKey subkey = Registry.CurrentUser.OpenSubKey(root, false); if (subkey == null) return false; // パス関連 string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); string path = subkey.GetValue(_RegLastAccess, desktop) as string; if (path != null && path.Length > 0 && Directory.Exists(path)) _output = path; path = subkey.GetValue(_RegLastInputAccess, desktop) as string; if (path != null && path.Length > 0 && Directory.Exists(path)) _input = path; path = subkey.GetValue(_RegUserProgram, "") as string; if (path != null && path.Length > 0 && File.Exists(path)) _program = path; // チェックボックスのフラグ関連 int flag = (int)subkey.GetValue(_RegPageRotation, 1); _rotation = (flag != 0); flag = (int)subkey.GetValue(_RegEmbedFont, 1); _embed = (flag != 0); flag = (int)subkey.GetValue(_RegGrayscale, 0); _grayscale = (flag != 0); flag = (int)subkey.GetValue(_RegWebOptimize, 0); _web = (flag != 0); flag = (int)subkey.GetValue(_RegSaveSetting, 0); _save = (flag != 0) ? Parameter.SaveSettings.Save : Parameter.SaveSettings.None; flag = (int)subkey.GetValue(_RegCheckUpdate, 1); _update = (flag != 0); flag = (int)subkey.GetValue(_RegAdvancedMode, 0); _advance = (flag != 0); flag = (int)subkey.GetValue(_RegSelectInput, 0); _selectable = (flag != 0); // コンボボックスの変換 string type = (string)subkey.GetValue(_RegFileType, ""); foreach (Parameter.FileTypes id in Enum.GetValues(typeof(Parameter.FileTypes))) { if (Parameter.FileTypeValue(id) == type) { _type = id; break; } } string pdfver = (string)subkey.GetValue(_RegPdfVersion, ""); foreach (Parameter.PdfVersions id in Enum.GetValues(typeof(Parameter.PdfVersions))) { if (Parameter.PdfVersionValue(id).ToString() == pdfver) { _pdfver = id; break; } } string resolution = (string)subkey.GetValue(_RegResolution, ""); foreach (Parameter.Resolutions id in Enum.GetValues(typeof(Parameter.Resolutions))) { if (Parameter.ResolutionValue(id).ToString() == resolution) { _resolution = id; break; } } // ExistedFile: v1 は日本語名で直接指定されていた string exist = (string)subkey.GetValue(_RegExistedFile, ""); if (exist == "上書き") _exist = Parameter.ExistedFiles.Overwrite; else if (exist == "先頭に結合") _exist = Parameter.ExistedFiles.MergeHead; else if (exist == "末尾に結合") _exist = Parameter.ExistedFiles.MergeTail; // PostProcess: v1 は日本語名で直接指定されていた string postproc = (string)subkey.GetValue(_RegPostProcess, ""); if (postproc == "開く") _postproc = Parameter.PostProcesses.Open; else if (postproc == "何もしない") _postproc = Parameter.PostProcesses.None; else if (postproc == "ユーザープログラム") _postproc = Parameter.PostProcesses.UserProgram; // DownsSampling: v1 は日本語名で直接指定されていた string downsampling = (string)subkey.GetValue(_RegDownSampling, ""); if (downsampling == "なし") _downsampling = Parameter.DownSamplings.None; else if (downsampling == "平均化") _downsampling = Parameter.DownSamplings.Average; else if (downsampling == "バイキュービック") _downsampling = Parameter.DownSamplings.Bicubic; else if (downsampling == "サブサンプル") _downsampling = Parameter.DownSamplings.Subsample; } catch (Exception /* err */) { status = false; } return status; }