私は、入力データによって要求された数字でPDFファイルを作るプログラムを作ることを任されました。この画像では、入力データがどのようになるか、すなわちサイズ、形状間のギャップ、形状のタイプ、青写真の番号を見ることができる。実際のダイアグラムがどのように表示されるかを示します。svgのサイズをhtmlページ内に保つ
input data above and actual graphics below
プロジェクトは、ベクトルグラフィックスを使用することが非常に重要ですので、彼らは本当に柔軟だと、それはプログラム的にそれらを生成するために、比較的簡単だと私はSVGsを使用して考えました。 次に、私は現在、.NETライブラリ(Select.HtmltoPdf)を使用してHTML文字列をPDFに変換しています。これは、C#でPDFを直接設計することが脚の間の痛みであるため便利です。 HTMLを使用すると、CSSと私が比較的よく知っているものを使用する利点が得られます。唯一の欠点は、私はそのライブラリを直接使用してsvgをレンダリングできないことです。まずそれらをhtmlファイルの中に入れなければなりません。
問題は、SVGをHTMLに挿入し、ライブラリを使用してPDFにレンダリングするときに発生します。 Corel DrawやAdobe Illustratorなどで直接svgを開くと、寸法が保持され、すべてがそのまま維持されます。ただし、ファイルの拡張子を.htmlに変更してChromeで開き、PDFに印刷したり、自分のプログラムから直接PDFをレンダリングしたりすると、図形がわずかに縮小されます。
私の質問は、パスの寸法をHTMLページに表示している間はそのままにする方法です。
<svg x="0" y="0" width="215.9mm" height="279.4mm" viewBox="0 0 215.9 279.4">
<rect x="40" y="40" width="25" height="25" rx="1.5875" ry="1.5875" stroke="black" stroke-width="0.5" fill-opacity="1"/>
<ellipse cx="20" cy="20" rx="20" ry="20" stroke="black" stroke-width="0.5" fill-opacity="0"/>
</svg>
そして、基本的にその周り<html>
タグと同じSVGである私が使用しようとしているHTML、:
は、ここに私の現在の.SVGです。
<!DOCTYPE html>
<html>
<meta HTTP-EQUIV="Content-Style-Type" CONTENT="text/css" CHARSET="UTF-8"/>
<svg x="0" y="0" width="215.9mm" height="279.4mm" viewBox="0 0 215.9 279.4">
<rect x="40" y="40" width="25" height="25" rx="1.5875" ry="1.5875" stroke="black" stroke-width="0.5" fill-opacity="1"/>
<ellipse cx="20" cy="20" rx="20" ry="20" stroke="black" stroke-width="0.5" fill-opacity="0"/>
</svg>
</html>
ありがとう!