PDFをJWWに変換する無料ソフトが凄く便利だったので紹介します。
ソフトの概要(ダウンロード)
『PDF to JWW』は、PDF形式のファイルを読み込み、その中のベクトルデータをJW_CADのデータに変換して、JWW形式(ver6.0形式)のファイルで出力します。
PDF出力された図面データを、JW_CADで利用できないものかという発想から開発されたツールです。
CADからPDFに出力される線や文字等のベクトル図形のみをPDFファイルから抽出変換するもので、PDF内の写真や画像等は一切無視します。
スキャナー等で紙をスキャンして作成したPDFは変換できません。
PDF to JWWの詳細情報 : Vector ソフトを探す!
それでは、↑Vectorにアクセスし、下記のダウンロードページからダウンロードしてみましょう。
インストール・アンインストール
インストーラはありません。
zipファイルを解凍して出来るPDF2JWWフォルダをそのままドライブ上の適当な所に置いて下さい。
アンインストールする場合は、このフォルダをそのまま削除すればOKです。
レジストリ操作等はしていません。
PDF2JWWフォルダ内には
・PDF2JWW.exe
・PDF2JWW.JWF
・JWsxf.dat
・zlib1.dll
の、4つのプログラムファイルと
・ReadMe.txt
・このソフトで出来ること、出来ないこと.txt
の、2つの説明(テキスト)ファイルが収められています。
一応、これだけでこのプログラムは利用できます。
これに加えて、GhostScript(以下、GSと表記) がインストールされていれば、変換可能なPDFファイルの範囲が広がりますが、必須ではありません。
★詳しくは「このソフトで出来ること、出来ないこと.txt」を参照。
操作方法
①PDF2JWWフォルダを開き、『PDF2JWW.exe』をクリックします。
②ファイル→PDF読込を行うか、PDFデータをドラッグ&ドロップします。
③図面が表示されれば、変換が成功です。
④次にファイル→JWW保存を行い、データを保存します。
⑤保存したデータを開くと真っ黒で何も見えません。
⑥範囲→全選択を押すと図面があることがわかりますが、このままでは使いにくいです。
⑦設定→基本設定→色・画面→色彩の初期化→背景色:白を選択し、『OK』を押します。
⑧背景が白になり、図面が見えて使いやすくなります。
⑨ここまで変換できれば、あとは縮尺を調整して、図面として利用することができます。
変換できないPDFについて
PDFファイルに内蔵されるデータには、ベクター(ベクトル)データとラスタデータがあります。
【ベクターデータ】
画像を数値で記録している画像形式。
例えば直線図形は座標上のA点とB点を線で繋ぎ、その線種、色、巾、といった情報も記録される。
文字も文字コードで表され、その文字が座標上のどの位置にあるか、という情報が記録される。
【ラスタデータ】
1pixelごとに色・濃度の情報を記録する画像形式。
縦横 〇〇ドット x 〇〇ドット の碁盤目状の描画エリアで、ドットを塗りつぶすことで線や文字を「絵」として表現する。
通常、パソコンユーザーが PDFファイルを作成するとき
・ソフト(CAD等)の印刷コマンドから「PDFを作成する仮想プリンタ」等で作成したPDFファイルは【ベクターデータ】。
・「スキャナ」や「複合機」等で紙の文書をスキャンして作成したPDFファイルは【ラスタデータ】。
となる。
PDF2JWWは、CADからPDFに出力される線や文字等の【ベクターデータ】で表現される図形をPDFファイル内から抽出変換するもので、【ラスタデータ】で表現される写真や画像等は一切無視します。
変換しようとするPDFファイルが【ベクターデータ】か【ラスタデータ】かを調べるには、PDFビューア(Adobe Acrobat Reader 等)でそのPDFを表示し、文字や線の曲線部を拡大してみると一目瞭然で、
・拡大しても曲線部が滑らかに表示されるものが【ベクターデータ】。
・拡大すると曲線部のドット表示が荒くなるものが【ラスタデータ】。
JWW への変換仕様(抜粋)
PDFファイルをダイレクトにJw_cad用データファイルに変換。
Jw_cadデータのバージョンは ver6.0。
PDFファイルからの変換対象はベクトルデータのみ。
PDFファイル内の画像データは変換対象外。
カラーのPDF、色付きで表示されている線・文字の色は JWWには反映されない。
文字サイズは Jw_cadの文字種によらず、任意サイズの文字として極力PDF内で表示されているサイズの文字で変換する。(フォントの種類については後述)
線種は実線、破線、一点鎖線に限定する。
変換できない問題点 ※興味がある人は見てね。
以下は、PDFからのデータ変換が困難な理由と、変換後のデータはCADの精密な作図には利用し辛いという理由です。
縮尺の問題
PDFは縮尺情報を持っていないため、変換後に縮尺合わせの作業が必要になる。
縮尺を合わせるには以下の2つの方法がある。
① PDF2JWW 内の縮尺設定コマンド(ver1.1~)で合わせる
出力されるJWW データは全てのグループが 1/○○ という縮尺設定になる。
② Jw_cad側で拡大縮小して縮尺を合わせる
PDF内で紙サイズは指定されているので、PDF2JWWは、その紙サイズの1/1縮尺でJWWへ出力する。
この場合、JWW側で各グループ毎に拡大縮小して縮尺を合わせる必要がある。
上記のように寸法を当たると実際の図面寸法と100倍差があるので、「縮尺・読取 設定」にて「全レイヤグループの縮尺変更」にチェックを入れ、縮尺を「1/100」、「図寸固定」を選択して『OK』します。
注)①②のどちらで縮尺を合わせても多少の誤差はどうしても残る。
データ精度の問題
変換後にJw_cad 上で縮尺合わせ作業をしても、どうしても誤差は残る。
例えば、910mmピッチでグリッドを作図し、1/100 600dpiで出力した PDFを変換後にJw_cad 上で縮尺合わせして測定すると、そのピッチは910.65 906.42 910.65 906.42 …のようになる。
これは元の PDF が作成された時点で発生するもので、PDFの仕様であり、必ずそうなる。
上記のように 1/100の図面を600dpiで出力した PDFの場合、1インチ:2540mm、なので、1dotの実寸巾:4.2mm となり、PDF作成時に 1dotの実寸巾以内のデータは全て 1dotに丸められてしまう。
その時点で実寸 4.2mm 以内のデータ情報は失われてしまうので変換後、Jw_cad 側で縮尺を合わせても、各図形の座標やサイズに、実寸法4.2mm 程度の誤差が残る。
例)2400dpiで出力された PDFの場合
元の図のスケールが1/100なら、実寸誤差0.6mm
元の図のスケールが1/ 50なら、実寸誤差0.3mm
と、誤差が完全に解消されることはない。
又、PDF 作成ソフトにもよるらしいが、X方向とY方向間でも僅かに縮尺が一致しないケースもある
線種の問題
PDF に描かれている線種と全く同じにするには無理がある。
元のアプリ(CAD等)で一本の破線、一点鎖線等だった線がPDF出力された時点で元の通り一本の破線、一点鎖線としてPDF化される場合と、短い線の連続としてPDF化される場合とがある。
PDF2JWWでは、その書き換えられた線形状を変換するので、元データの通りの一本の破線、鎖線になるか、短線の連続になるかはコントロールできない。
よって、例えば変換後の Jw_cad上の平面図で、縦横の通り芯が短い線の連続になった場合、その交点がスナップできないこともある。
一本の破線、鎖線としてPDFに記録されている線は一本の破線、鎖線として変換する。
円・曲線の問題
元のアプリ(CAD等)で円、曲線だった線は PDF出力されると、PDF内では全てベジェ曲線に置き換えられている。(これはPDFの仕様であり、必ずそうなる)
PDFには「円」「円弧」等のコマンドは無く、全ての曲線は「ベジェ」のみで表現される。
理論上、ベジェでは真円は描けないので、PDF文書内で描かれている「円」はよく見ると、全て僅かに歪んでいる。
PDFは紙に印刷するというイメージで作成されているので、人の目で見てほとんど判別できない程度の僅かな歪は構わない、ということらしい。
大き目の円はある程度歪みの少ない円形に変換されるが、小さな円はかなり歪む。
ドット単位で座標が指定されているため、小さな円では円を表現するPDF内のベジェの座標も荒くなり歪んでしまうのはやむを得ない。
PDF内の曲線図形が元は円だったのか、自由曲線だったのかを判別する手段は無い。
Jw_cadはベジェのデータ形式を持っていないので、PDF2JWWでは PDF内の曲線は全て多角形に変換し、「円」「円弧」等のデータは生成しない仕様とした。
よって、例えば変換後の Jw_cad上のデータで、円と直線の交点を拾って角度を調べたり、長さを求めたりというCAD的な作図行為は出来ないことになる。
文字の問題
世に出回っている「PDFを変換するソフト」の多くで「文字化け」が発生する理由はここにあるらしい。
2byte文字圏でのPDF内の文字コードは、一部のASCII文字を除いてほとんどがAdobe社独自のCID文字コードで記録されている。
通常、このCIDコードを ShiftJis化する方法はAdobe社から公表されていない。
変換するPDFファイル内に ToUnicodeCmapという文字コード変換情報が同梱されている場合と、いない場合とがある。
同梱されていれば、これを利用してPDFファイル内のCIDコード文字を UniCode化し、そこからShiftJis化変換が可能だが、PDFの仕様上、同梱は義務付けられていない。
一般的なCADのようなアプリから「PDF redirect V2」や「pdfCreator」等で作成した多くのPDFには ToUnicodeCmapが同梱されているようだが、これが同梱されていない
PDFは文字変換をあきらめるしかない。(CIDコードからの変換情報(外部CMAP)が必要だが、これはAdobe社が非公開にしている)
フォントの問題
PDFで使われる文字はPostScriptで言うコンポジットフォントと、CIDフォントがあり、コンポジットフォントはUniCodeを経由してShiftJis化することで、PDF内で指定されているフォント名で、JWW用に利用できるが、CIDフォントは、各PDF内で定義される文字形状(= Glyph = 文字を表す図形 = 絵)で表現されており、これ(文字形状、サイズ、間隔)を忠実にJWW用に変換することは無理(と思う)。
そのため、CIDフォントは全て「MS ゴシック」に読み替えている。
PDFのデータフォーマットの問題
一応、PDFreference32000_2008 (PDFver1.7) をベースにこのソフトを作成した。
PDFファイルを作成するソフト(仮想プリンタ等)は世の中に数多くある。
同じ元図から作られるPDFファイルはどのソフトを使って作成しても、PDFビューアで見る限り同じものが作られているように見える。
しかし大抵の場合そのファイルサイズは異なり、ファイル内のデータの構造(フォーマット)も、同じものは全く無いと言っていいほど異なっている。
PDFファイルの規格は Adobe社が制定し、そのフォーマットも Adobe社から公開されているが、その中で許容されているデータ配列・格納方法の幅が広く、作成アプリごとに作成するPDF内のデータ配列・格納方法等、その幅の中で差異がある。
まとめ
PDFから図形情報を取り出し、変換するツールは世にあまり多くありません。
PDF2JWWは、本来の目的である「PDF出力された図面データを、Jw_cadで利用」するための必要最小限の機能に限定した仕様になっています。
素晴らしいフリーソフトなので、ぜひお試しあれ!
PDF to JWWの詳細情報 : Vector ソフトを探す!