diff --git a/CSRender/Program.cs b/CSRender/Program.cs index afe11dc5f370c2f7bf22ed59e81d33fabd686c85..642517bb80e4c34eddda762f8515424c81e68a9d 100644 --- a/CSRender/Program.cs +++ b/CSRender/Program.cs @@ -127,23 +127,24 @@ For more information,see /H /? or /? [Obs]/PDFium <0or1>: GoogoleのPDFiumViewerエンジンを使用する(default=1> [未]/BM,/BT,/BA,/BA,/BC: Select one box.(default=/BC:CrobBox): Boxies:MediaBox/BleedBox/TrimBox/ArtBox/CropBox -[Make Hash command] 比較用ハッシュ値作成コマンド +[Make Hash command] /MkHash 比較用ハッシュ値作成コマンド {pgName} /MkHash ...... /MKHash : ハッシュ値を出力する。前記の[Render Options]を指定すること -[Compare command] 比較コマンド - {pgName} /FC ...... [/F] [/Ref|Refernce] +[Compare command] /Fc比較コマンド + {pgName} /Fc ...... [/Tgt|Target] [/Ref|Refernce] /FC : 2つのPDFを比較する。前記の[Render Options]を指定すること。無名引数が2つ必要です 事前に/MkHashを実行しておくことで高速に処理できる - /Ref|Reference <> : 比較ファイル指定 + /Tgt|Target <> : ターゲットファイル指定 + /Ref|Reference <> : リファレンスファイル指定(比較先) /Result : 比較結果を格納するファイルパス /FCコマンドを指定すると一致したら0,不一致なら1を返却するようになる は、,<[OK] or [@Difference]>の行で構成される -[ELSE ] その他のオプション - /Para <プロセス並行数>:本Exeの並行数を指定(デフォルト4) - /ParaPage <ページ処理スレッド数>:ページ処理のスレッド数を指定(デフォルト4) - /Verbose : 詳細表示 +[ELSE] その他のオプション + /Para : <プロセス並行数>:本Exeの並行数を指定(デフォルト4) + /ParaPage : <ページ処理スレッド数>:ページ処理のスレッド数を指定(デフォルト4) + /Verbose [True|1] : 詳細表示 [obs]/NoExeSepa :実行分離しない(遅い) /H or /? : This help"); @@ -202,7 +203,7 @@ For more information,see /H /? or /? if (isOpt("/?", "/H","/Help")) { DispHelpDetail(); return -1; - } else if (isOpt("/F")) { + } else if (isOpt("/F","/Tgt","/Target")) { pm.pdfPath = (qu.Count > 0) ? qu.Dequeue() : "";// next word. } else if (isOpt("/Ref","/Reference")) { pm.pdfPathRef = (qu.Count > 0) ? qu.Dequeue() : "";// next word. @@ -279,7 +280,7 @@ For more information,see /H /? or /? return -1; } } else if (isOpt("/Verbose")) { - var arg = (qu.Count > 0) ? qu.Dequeue() : "True";// next word. + var arg = (qu.Count > 0) ? (!qu.Peek().StartsWith("/")? qu.Dequeue() : "True") : "True";// next word. string[] sel = {"True","1","ON"}; pm.bVerbose = sel.Contains(arg, eIgnoreCase); } else if (isOpt("/SubExe")) { @@ -353,7 +354,7 @@ For more information,see /H /? or /? bDirMode = true; pdfPathLst = System.IO.Directory.GetFiles(pm.pdfPath, "*.pdf"/*, System.IO.SearchOption.AllDirectories*/); pdfPathLst = Array.ConvertAll(pdfPathLst, f => Path.GetFileName(f)); - // 配列書き換え(ファイル名のみにする + // 配列書き換え(ファイル名のみにする) // var enumLst = pdfPathLst.Select(f => Path.GetFileName(f)); LINQ式に置き換えることも可能(返り値は配列ではない) //foreach ( var f in pdfPathLst) { // Console.WriteLine($@"path1={f}"); @@ -378,6 +379,11 @@ For more information,see /H /? or /? Console.WriteLine($"比較ファイルが存在しません:{pm.pdfPathRef}"); return -1; } + // 同一フォルダorファイルの禁止 + if (Path.GetFullPath(pm.pdfPath).Equals(Path.GetFullPath(pm.pdfPathRef),StringComparison.OrdinalIgnoreCase) ){ + Console.WriteLine("ターゲットとリファレンスが同一です"); + return -1; + } bool bDir2 = File.GetAttributes(pm.pdfPathRef).HasFlag(FileAttributes.Directory); if (bDir2) { if (!bDir) { diff --git a/CSRender_ReadMe.adoc b/CSRender_ReadMe.adoc new file mode 100644 index 0000000000000000000000000000000000000000..71077b7e6f066f536b1a83ff0145a70e562c21d2 --- /dev/null +++ b/CSRender_ReadMe.adoc @@ -0,0 +1,90 @@ + +:lang: ja +include::config.adoc[] + +:toc: left + +{ExtendStyle} +// After need empty-one-line + += CSRenderCLI Readme + +[.text-right] +-- +2022/05/08 +-- + +== Change Log + +* V1.3.2.x:2022/05/08 : + - /fc時のhashFile異常時にhashFileを再作成する。PDFファイル更新をチェック + - /fc時のターゲットとリファレンスの同一パスを禁止 +* V1.3.2.0:2021/12/20 :aRGB4チャンネル保存からRGB3チャンネルに変更 +* V1.3.1.0:2021/10/04 :UWP用、Data.pdfの削除、整理 + - UWP用コード削除。通常のファイルアクセスやMemoryStreamに変更 + - Widnows RT Windows.Data.pdfの使用を削除.PDFiumのみとした + - /ParaPageオプション追加。PageRenderのスレッド数(Def=4) + - TIFF出力時のJpegのノイズ削除 +* V1.3.0.4:2021/04/29 :Helpの記述抜け "/Result"の対応 +* V1.3.0.3:2020/11/22 :/Result <比較結果> を実装。diff画像を出力 +* V1.3.0.2:2020/07/11 :不具合修正 + 比較時に差異があるとクラッシュしていた。streamのフラッシュミス +* V1.3.0.1:2020/06/20 :不具合修正 + 2つのファイルの比較が常にOKになっていた可能性があるので修正 +* V1.3.0.0:2020/06/10 :基本的なPDFの画像化(PNG,JPG)とPDFの比較を行えるもの + +== Command-Line Parameters + +以下、CSRender /? のヘルプ内容です +TestSampleフォルダに使用例がありますので合わせて参照のこと + +CSRender.exe [/] +* Render of PDF file. available 3 command mode:[Basic Rendering] [Make Hash command] [Compare command], and [Render Options] + PDFの画像化は[Basic Rendering]。 + 比較は/MkHash([Make Hash command])後に、/FC([Compare command])で高速実行できます。 + +[Basic Rendering] 基本的なレンダリング + CSRender.exe [/] + /F : pdfPath(pdfファイル名|ディレクトリ) /Fは省略可能 + /O : 出力ディレクトリ。省略時は"IMG"フォルダ + +[Render Options] レンダリングオプション + /D <解像度> : 解像度指定 9 - 300dpi(default=72dpi) + /JPG,/JPEG,/PNG,/TIF,/TIFF,/GIF,/BMP: Select one output format.(default=/JPG) + /JPEGQ : Jpegの品質指定1-100(default=91) + + /P : ページの範囲を指定する(省略時は全ページ) + 連続した範囲を指定する場合は、ハイフン('-')を用いる。終了側を省略すると最終pageまで。 + 複数のページを指定する場合は、カンマ(',')を用いる + Ex. /P "1,2,30-100" //1,2pages and 30-100pages. + [Unsupport] 未対応↓ + /L : 入力PDFファイルリスト(*unsupport) + /T : テンポラリフォルダを指定(省略時は出力先フォルダと同じ(*unsupport no need) + /OP <0|1> : オーバープリントのOn/Off (省略時は1)(*unsupport allways on[1]) + /U <0|1> : 同名上書き設定 0:上書きしない 1:上書き(*unsupport allways overwrite[1]) + /OFFSET : ミリ単位でオフセットを指定する(省略時は共に0mm)(*unsupport) + /PDFium <0or1>: GoogoleのPDFiumViewerエンジンを使用する(default=1> + 【未】/BM,/BT,/BA,/BA,/BC: Select one box.(default=/BC:CrobBox): Boxies:MediaBox/BleedBox/TrimBox/ArtBox/CropBox + +[Make Hash command] 比較用ハッシュ値作成コマンド + CSRender.exe /MkHash ...... + /MKHash : ハッシュ値を出力する。前記の[Render Options]を指定すること + [HASHファイル作成] + +[Compare command] 比較コマンド + CSRender.exe /FC ...... + /FC : 2つのPDFを比較する。前記の[Render Options]を指定すること。無名引数が2つ必要です + 事前に/MkHashを実行しておくことで高速に処理できる + + 【未】/RESULT : 比較結果を格納するファイルパス + /FCコマンドを指定すると一致したら0,不一致なら1を返却するようになる + は、,の行で構成される + +[ELSE ] その他のオプション + /PDFium <0|1>:PDFiumライブラリを使う,デフォルト=1 + /NoExeSepa :実行分離しない(遅い) + 内部コマンド:/SubExe :実行分離,PDF単位で別Processで処理 + +/H or /? : This help + +END \ No newline at end of file diff --git a/CSRender_ReadMe.txt b/CSRender_ReadMe.txt deleted file mode 100644 index 867f15503164cddbb35e8d815f60e0c72611bc46..0000000000000000000000000000000000000000 --- a/CSRender_ReadMe.txt +++ /dev/null @@ -1,70 +0,0 @@ -V1.3.2.0:2021/12/20 :aRGB4`lۑRGB3`lɕύX -V1.3.1.0:2021/10/04 :UWPpAData.pdf̍폜A - * UWPpR[h폜Bʏ̃t@CANZXMemoryStreamɕύX - * Widnows RT Windows.Data.pdf̎gp폜.PDFium݂̂Ƃ - * /ParaPageIvVljBPageRender̃Xbh(Def=4) - * TIFFo͎Jpeg̃mCY폜 -V1.3.0.4:2021/04/29 :Help̋Lq "/Result"̑Ή -V1.3.0.3:2020/11/22 :/Result Bdiff摜o - -V1.3.0.2:2020/07/11 :sC - rɍقƃNbVĂBstream̃tbV~X - - -V1.3.0.1:2020/06/20 :sC - Q‚̃t@C̔rOKɂȂÔ\̂ŏC - -V1.3.0.0:2020/06/10 :{IPDF̉摜(PNG,JPG)PDF̔rs - -ȉACSRender /? ̃wveł] -TestSampletH_ɎgpႪ܂̂ō킹ĎQƂ̂ - -CSRender.exe [/] -* Render of PDF file. available 3 command mode:[Basic Rendering] [Make Hash command] [Compare command], and [Render Options] - PDF̉摜[Basic Rendering]B - r/MkHash([Make Hash command])ɁA/FC([Compare command])ōsł܂B - -[Basic Rendering] {Iȃ_O - CSRender.exe [/] - /F : pdfPath(pdft@C|fBNg) /F͏ȗ”\ - /O : o̓fBNgBȗ"IMG"tH_ - -[Render Options] _OIvV - /D <𑜓x> : 𑜓xw 9 - 300dpi(default=72dpi) - /JPG,/JPEG,/PNG,/TIF,/TIFF,/GIF,/BMP: Select one output format.(default=/JPG) - /JPEGQ : Jpeg̕iw1-100(default=91) - - /P : y[W͈̔͂w肷(ȗ͑Sy[W) - A͈͂w肷ꍇ́AnCti'-'jpBIȗƍŏIpage܂ŁB - ̃y[Ww肷ꍇ́AJ}i','jp - Ex. /P "1,2,30-100" //1,2pages and 30-100pages. - [Unsupport] Ή - /L : PDFt@CXg(*unsupport) - /T : e|tH_wiȗ͏o͐tH_Ɠ(*unsupport no need) - /OP <0|1> : I[o[vgOn/Off (ȗ1)(*unsupport allways on[1]) - /U <0|1> : ㏑ݒ 0:㏑Ȃ 1:㏑(*unsupport allways overwrite[1]) - /OFFSET : ~PʂŃItZbgw肷iȗ͋0mm)(*unsupport) - /PDFium <0or1>: GoogolePDFiumViewerGWgp(default=1> - yz/BM,/BT,/BA,/BA,/BC: Select one box.(default=/BC:CrobBox): Boxies:MediaBox/BleedBox/TrimBox/ArtBox/CropBox - -[Make Hash command] rpnbVl쐬R}h - CSRender.exe /MkHash ...... - /MKHash : nbVlo͂BOL[Render Options]w肷邱 - [HASHt@C쐬] - -[Compare command] rR}h - CSRender.exe /FC ...... - /FC : 2‚PDFrBOL[Render Options]w肷邱ƁB2•Kvł - O/MkHashsĂƂōɏł - - yz/RESULT : rʂi[t@CpX - /FCR}hw肷ƈv0CsvȂ1ԋp悤ɂȂ - ́A,̍sō\ - -[ELSE ] ̑̃IvV - /PDFium <0|1>:PDFiumCug,ftHg=1 - /NoExeSepa :sȂ(x) - R}hF/SubExe :s,PDFPʂŕProcessŏ - -/H or /? : This help -