============== PDF to JWW PDFからJWWへ変換 =========================== 【ソフト 名】 PDF to JWW 【バージョン】 1.50(2019.02) 【機   能】 PDFファイルをJWWデータファイルに変換する 【登 録 名】 PDF2JWW.zip 【著作権 者】 土器手 茂 【作者連絡先】 shigeru.dokite@nifty.com 【開発 環境】 Windows 10 + Visual Studio 2013 【動作 環境】 Windows 10 で動作確認 【ソフトウェア種別】 フリーソフトウエア 【転載 条件】 自由(但し、この説明ファイルを添付すること) =========================================================================== ●ソフトの概要(何をするソフトか) 「PDF to JWW」(以降 PDF2JWW と表記)は、PDF形式のファイルを読み込み、 その中のベクトルデータをJw_cadのデータに変換して、JWW形式(ver6.0形式)の ファイルで出力します。 CAD(Jw_cad以外も含めて)で作図し PDF出力された図面データを、Jw_cadで利用 できないものかという発想から開発に着手したツールです。 CADからPDFに出力される線や文字等のベクトル図形のみをPDFファイルから抽出 変換するもので、PDF内の写真や画像等は一切無視します。 スキャナーや複合機等で紙をスキャンして作成したPDFは変換できません。 このため CADのような、線・文字で構成されるPDFの変換効率はある程度期待 できますが、一般文書や写真・画像等を多用したPDFの変換にはあまり向いて いません。 また、PDFデータの性質上、全ての線・文字を完全には変換できません。 理由は別記します。興味のある方はご参照ください。 ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ★Jw_cad は、Jiro Shimizu 氏 Yoshifumi Tanaka 氏 作の汎用2次元CAD (Windows上で動作するフリーソフトウェア)です。 ●インストール・アンインストール インストーラはありません。 zipファイルを解凍して出来るPDF2JWWフォルダをそのままドライブ上の適当な 所に置いて下さい。 PDF2JWWフォルダ内には  PDF2JWW.exe  PDF2JWW.JWF  JWsxf.dat  zlib1.dll の、4つのプログラムファイルと  ReadMe.txt  このソフトで出来ること、出来ないこと.txt の、2つの説明(テキスト)ファイルが収められています。 アンインストールする場合は、このフォルダをそのまま削除すればOKです。 レジストリ操作等はしていません。 一応、これだけでこのプログラムは利用できます。 これに加えて、GhostScript(以下、GSと表記) がインストールされていれば、 変換可能なPDFファイルの範囲が広がりますが、必須ではありません。 ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ●開発/動作環境 開発は Windows 10 + Visual Studio 2013 で行いました。 動作テストは【PDF redirect V2】という仮想プリンタ(フリーソフト)を 使って作成したPDFファイルで行っています。 この環境下で作られたはPDFファイルは、ほぼ全て変換出来ていますが、 他のPDF作成ソフト等で作られたPDFファイルは正しく変換されないことも あるようです。 ●起動・基本的な操作の手順 PDF2JWWフォルダ内の PDF2JWW.exe を直に実行すれば起動します。 起動後の基本的な操作は @ 【読込】   :<ファイル>で、変換するPDFファイルを読込む。 A 【縮尺設定】 :表示された図面上の正確な距離が判明している2点を           右クリックで指定し、寸法値を入力する。 B 【レイヤ整理】【線色(ペン番号)を変更】(必要な場合) C 【保存】   :<ファイル>で、表示されている頁をJw_cad形式で           ファイル保存。 という手順になります。 補足...  @ 画面に図が表示されたら、その時点で変換は成功しています。    <ファイル>を使わずに、ドラッグアンドドロップでPDFを読込む    ことも可能です。    後述しますが、PDF には、このソフト単独で変換できるものと、このソフト    単独では変換できないものとがあります。    単独で変換できない場合は、「GhostScript」又は他の「PDF作成仮想プリン    タ」等 で再変換したPDFを変換することをお勧めします。  A PDFには縮尺情報は含まれていないので、「図面」を変換する場合に縮尺を    合わせる為に必要な操作です。「一般文書」の変換では不要でしょう。    「縮尺設定」というコマンドは特に設けていません。    変換後の画面が表示された時点で、即、2点を指定できる状態になって    いて、線の端点・交点が右クリックでスナップ可能です。    入力された2点間の実際の寸法を入力してください。    入力された2点間の寸法と実際の距離から縮尺値(1/**)は自動的に決まり、    JWWで保存される際、全てのグループの縮尺に適用されます。    元のPDFデータに設定されている紙サイズを逸脱しない範囲で縮尺が決定    されるので、縮尺(1/**)の分母は必ずしも切りの良い値になるとは限りま    せん。    複数頁ある場合、1頁毎、または全頁まとめて縮尺指定可能です。    再度、端点・交点を右クリックすることで寸法値を修正できます。    縮尺指定せずにJWW保存しても構いませんが、その場合 Jw_cad側で拡大/    縮小して縮尺を合わせる必要があります。    (画面表示の拡大縮小等は Jw_cadとほぼ同じマウス操作で可能     PDFに複数の頁が含まれている場合、[←][→]のコマンドで頁切り替え)  B 必要な場合のみ。    1つのレイヤ内に変換された線のうち、指定した線だけを別レイヤに移す。    又はレイヤごとの線の色(ペン番号)を変更する。    頁毎に処理します。    詳しくは後述。  C 複数頁のPDFの場合、表示されている1頁だけが保存されます。    複数頁を一括で保存はできません。    出力される JWWファイル名には末尾に頁数が追記されます。 ●レイヤ整理コマンド(線のみ)(ver1.4〜) PDF2JWWは、線を PDF内での線の巾によってレイヤ分けをしていますが、 ユーザーが期待するようにはレイヤ分けされないケースも多くあります。 変換後にJw_cad でレイヤ整理してもいいのですが、Jw_cad には無い 「線の長さ」や「連結する線」による指定でのレイヤ整理機能として 設けました。  1つのレイヤに変換された線のうち、特定の線だけを別レイヤに移したい。  又は、不要な線を別レイヤに移して、特定の線だけをレイヤ内に残したい。 そういう使い方を想定しています。 実線のみを対象とし、実線以外の線・文字データは対象外としています。 以下の手順で操作してください。  レイヤ整理コマンドアイコンで起動。頁毎に処理します。  @ 今表示している頁の、どのレイヤを対象とするか、左のリストで指定。    指定したレイヤの実線のみが白い線で表示されます。  A その白で表示された実線のうち、別レイヤへ移したい線を選択。    下記 a.b.c. のいずれかの方法で実線を選択します。    ・左クリックで1本ずつ選択(緑色表示に変化)      再度クリックすれば解除。    ・右クリックで連結した線群を選択(緑色表示に変化)      再度クリックすれば解除。    ・左ドラッグ(右下)で範囲指定選択(緑色表示に変化)      再度範囲指定すれば解除。    ・長さで選択      長さ指定欄に長さを入力して     「それより長い線」 「同じ長さの線」 「それより短い線」     「それと同じ線とそれに連結する線」 を指定。      仮選択(赤色表示)状態で確認後、「赤→選択(緑)」(緑色表示に変化)     長さ指定欄はマウスで線を左クリックすることで、その線長を取込み可能  B 選択(緑色表示)した実線を、別レイヤに移動。    移動先のレイヤを左のリストで選択し、「移動」ボタンでレイヤ移動。    仮選択(赤色表示)状態の線は移動しません。 特に 右クリックでの「連結した線群を選択」は、曲線群や Box図形 壁躯体線 等を 一括選択できるので、Jw_cad とは違った効果的な使い勝手になっていると思います。 線の選択操作は JW_cad に似せて、  範囲選択:左ボタンドラッグ右下方向  Undo  :右ボタンドラッグ右下(4時)方向  Redo  :右ボタンドラッグ右下(5時)方向 という操作が出来るようにしています。 破線や一点鎖線が白く表示される場合、それは1本の破線等ではなく、多数の短い 実線が連なっている線です。 変換データそのものが誤差を含んでいるため、「同じ長さ」は、指定長さの±1%の 誤差を見込んでいます。 頁毎に処理するので一旦1つの頁でレイヤ整理したあと別の頁に表示切替すると レイヤ整理する前の状態に戻ってしまいます。別の頁に表示切替する前に、レイヤ 整理した頁をjww保存してください。 ●各レイヤ毎の線色(ペン番号)を変更(線のみ)(ver1.5〜) 上記「レイヤ整理コマンド」同様に変換後の画面で各レイヤ毎の線色(ペン番号)を 変更したい場合に使用します。 線のみを対象とし、文字データは対象外です。  @ 線色(ペン番号)を変更したいレイヤを左のリストで指定し、  A 右のペン(色)番号ボタンで変更します。 頁毎に処理するので一旦1つの頁で線色(ペン番号)を変更した後に、別の頁に 表示切替すると線色(ペン番号)を変更する前の状態に戻ってしまいます。 別の頁に表示切替する前に、線色(ペン番号)を変更した頁をjww保存してください。 ●利用上の注意、アドバイス等.. ・★【重要】PDFデータの著作権について  PDFの変換に限ったことではありませんが、他人の著作物(図面等)を、その  著作権に触れる形で利用する場合、著作権者の了解を得る必要があります。 ・★【重要】変換後のJWWデータにはある程度の誤差が残ります。  これは変換元の PDFデータの解像度の問題で、やむを得ない現象です。 ・「データ保護」(データロック)されたPDFは、もちろん変換できません。  「zip圧縮データを展開できませんでした」等のエラーメッセージが表示される  場合、「データ保護」されたPDF の可能性があります。 ・PDF内のデータは縮尺情報を持っていません。  Jw_cadで利用するには、変換後に縮尺を合わせる操作が必要です。  PDF2JWW内で縮尺指定する場合、なるべく長いスパンで寸法指定するほうが良い  縮尺値を得やすくなります。 ・「破線」や「一点鎖線」は、正しく「破線」「一点鎖線」に変換される場合と、  短い線の連続に書き換えられる場合とがあります。 ・PDF内のデータは「円」「円弧」というデータ形式を持っていません。  そのため、全ての曲線は多角形や、連続線に変換されます。 ・文字は変換されているように見えても、よく見ると中に不自然な文字や、「?」  等が含まれていることもあり得ます。注意してください。 ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ●このソフトで変換可能なPDF と不可能なPDF 通常はPDFを読み込むと即変換をしますが、PDF のフォーマットはデータの 構造が多彩で、このソフトだけでは変換できないPDF ファイルもあります。 変換ができないPDFファイルの対処法。 ・GS (GhostScript) がインストールされている環境の場合、  このソフト上で「GS経由変換」できます。 ・GS がインストールされていない環境の場合、   一旦、このソフトを閉じる   変換しようとしているPDF をPDFビューア等で表示、   ビューアの印刷コマンドからPDF仮想プリンタ等で再度PDF出力する   その再出力したPDF をこのソフトで変換する という手順で大抵の場合、変換可能です。 但し、このように再変換したPDF の場合、変換の繰り返しになるため 文字化けしたり、いくつかの線、文字が抜けてしまう、等、データの精度が 悪くなることもあります。 注)GSと連動するには、パソコンに GhostScript のインストールが必要。   (gswin32c.exe 又は gswin64c.exe) ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ●どんなPDF が変換不可能か ・「データ保護」(データロック)されたPDFは、もちろん変換できません。  「zip圧縮データを展開できませんでした」等のエラーメッセージが表示される  場合、「データ保護」されたPDF の可能性があります。 ・PDF内の写真や画像等は一切無視します。  スキャナーや複合機等で紙をスキャンして作成したPDFは変換できません。 ・PDFはアドビ システムズ社が開発した文書ファイルのデータ形式ですが、  年々、新しいバージョンが公表されています。このソフトは PDFフォーマット  ver1.0〜1.7 に対応しているつもりですが、それ以降の新しいフォーマットで  作成されたPDFファイルは変換できない可能性が高いです。 ・文字が変換されない  PDFビューアでは表示されているのに変換すると文字が全て無くなる・・・  PDFファイルの中に文字コードのデーダが含まれていない場合に発生します。  ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ●設定用ファイル PDF2JWW.JWF PDF2JWWフォルダ内に PDF2JWW.JWFというファイル(テキスト形式)があります。 本家Jw_cadの JW_WIN.JWFと同様の設定ファイルで、書式もそれに準じています。 指定できる設定内容等はそのファイルの中での説明を参照してください。 ●その他 <ファイル> の コマンドで、読み込んだ PDFファイルの データ内容、変換状況を簡単に纏めたレポートファイル(.txt)を出力します。 このツール開発時のデバッグ情報用に用意したコマンドなので、通常は使う 必要のないものです。 ●最後に・・ 動作チェックは行っているつもりですが、万全とは断言できません。 各ユーザーの責任においてご利用下さい。 他人の著作物(図面等)を、その著作権に触れる形で利用する場合、著作権者の 了解を得る必要があります。 本作はフリーソフトウェアです。 本作品の使用によるいかなる損害にも作者は責任を負いません。            土器手 茂 =========================================================================== =========================================================================== ●バージョン情報 ◎ver_1.50 ・圧縮型XrefフォーマットのPDFの変換に対応。  これまでGhostScriptの連動を必要としていたPDFの多くを変換可能になった。  これに伴い、GhostScript連動のアイコンを削除した。  (連動コマンド自体はメインメニューの中に残している) ・文字の位置、サイズが正しく変換されないことがある不具合を修正。 ・線種が正しく変換されないことがある不具合を修正。 ・輪郭線の無い塗り潰し領域の輪郭線を生成してしまうことがある不具合を修正。 ・PDFreport の書式を改善した。 ・対応するshift-jisコードの無いuni-code文字について、独自の変換表を 約400字追加した。ver1.3と合わせて約1000字 ・変換後の画面で各レイヤ毎の線色(ペン番号)を変更出来るようにした。 ◎ver_1.42 ・同じ位置に同サイズの同文字列が重なっている場合の排除処理をより厳しく  チェックするようにした。 ・横並びに間隔をあけて並ぶべき文字列が1つの繋がった文字列になることが  ある不具合を修正。 ・一部の文字でサイズ異常が発生する不具合を修正。 ・縮尺指定コマンド中でも両クリック画面移動が出来るようにした。 ・実線以外の線が実線に変換されることがある不具合を修正。 ・一直線上に並ぶ短線の列を1本の線(破線・鎖線)に変換出来ないことがある  不具合を修正。(水平、垂直線に限る) ・元のPDF図形に無い直線が発生することがある不具合を修正。 ・内部圧縮データの展開に失敗してフリーズすることがある不具合を修正。 ◎ver_1.41 ・PDFデータによっては読込時、又は頁切り替え時にフリーズすることがあった  不具合を修正。   手元にあるデータで検証可能なケースで対応した。 ・レイヤ整理コマンドを改良した。   マウスコマンドでUndo Redo 出来るようにした。   範囲指定でレイヤ移動線を選択出来るようにした。   レイヤ移動先を指定出来るようにした。   その他、操作性を向上。 ・ほぼ同じ位置に同サイズの同文字列が重なっている場合、1つを残して  重複文字列を削除する仕様にした。 ◎ver_1.4 ・ver1.3以降で生じた以下の不具合を修正した   これまで変換できていたPDFが変換できないことがあった。   多頁PDFの場合、正しく頁切り替え表示出来ないことがあった。   JWFファイルを正しく読み込めないことがあった。   その他、変換ミスが生じる可能性があった小さな不具合。 ・プログラム内のメモリ管理を全面的に見直したことで   サイズの大きなPDFでも変換可能になり、動作が安定した。   (1000頁のPDFファイルで動作テスト)   ファイルサイズ・頁数が大きなPDFでも短時間で開けるようになった。   変換処理を全頁一括変換から各頁逐次変換に変更した。 ・頁一覧コマンドの操作性を改善し、指定頁へジャンプ可能にした。 ・表示:最大倍率を50倍までとした。 ・PDFreport の書式を改善した。 ・線の長さ等でレイヤ整理するコマンドを追加した。 ・その他、以下の不具合を修正した   縮尺設定後に頁切り替えすると縮尺情報が消えた。   圧縮データの展開で、一部の線・文字が欠損する可能性があった。 ◎ver_1.31 ・DocuWorks で作成されたPDFファイルの変換にも対応  (サンプル数が少ないので検証は不十分かもしれません) ◎ver_1.3 ・線種が正しく変換されないことがある不具合を修正。 ・多頁PDF を変換する場合、「変換中 0/0 頁」を表示するようにした。 ・変換後の頁表示で、10頁ジャンプボタンを追加。 ・ある程度大きなPDFファイルにも対応できるようにした。   限界はある(ファイルサイズ、頁数、内部データのオブジェクト数等による)   PDFファイルが大きすぎる時にメッセージ表示 ・変換後に「縮尺設定」のメッセージを表示するようにした。 ・文字の変換処理を見直し、変換精度をやや高めた。   ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ・一直線上に並ぶ短線の列を1本の線(破線・鎖線)に変換するようにした。   水平、垂直線に限る   通り芯や破線等を一線化するための機能ですが、全ての線に対応しているわけ   ではありません。   ★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。 ◎ver_1.2 ・PDF読込みのコマンドを一本化。このソフト単独で変換できないと判断したとき  には、自動的に「GS経由」に切り替えて変換する仕様にした。 ・PDF読込後に「単独」「GS経由」をボタンで指定して切り替えられるようにした。 ・マウスホイールによるズーム操作方向を設定ファイルで指定できるようにした。 ・ツールバーのボタン配置を一部変更。 ・変換したJWWデータの文字種1〜10のサイズを、ある程度変換内容に合わせるよう  にした。 ・出力JWWデータのフォーマットの不具合を一部修正。 ・半角文字の一部 '(' 等が正しく変換されないことがある不具合を修正。 ◎ver_1.1a ・JWW で出力したファイルのフォーマットが不正確で、一部のソフトで読めない、  という不具合を修正 ◎ver_1.1 ・GS経由で変換するファイル名(パス名)がスペースを含んでいても使えるよう  にした ・縮尺設定機能を追加 ・ページ情報一覧機能を追加 ・文字変換で誤変換するケースを一部改善 ・文字配置が不正確なケースを一部改善 ・画面表示の拡大縮小等を Jw_cadとほぼ同様のマウス操作でできるようにした ・Jw_cad で開いた後、SXFモードにするとフリーズする不具合を修正 ・長い文字列(一行の文字数が多い)を含むPDFを変換した場合に、Jw_cad で  開けないことがある不具合を修正 ・設定用ファイルの背景色と文字色が正しく反映されていなかった不具合を修正 ◎ver_1.0 ・2016/06/07 公開 ===========================================================================