AM5:00に針路をとれ

主に艦これ、たまに閑話

【SOLIDWORKS API】PDF保存時に任意のDPIで保存する

SOLIDWORKSにおいて、図面を指定保存する際、PDF形式を選択できる。その際選択可能なオプションに、「高精度ライン(High quality lines)」がある。このオプションを有効にしたうえで、指定できる「シェイディング/ドラフト ジオメトリ DPI(Shaded/Draft geometry DPI)」と「シャープにした OLE/DPI(Sharpened OLE/DPI)」の値について、SOLIDWORKS APIからも指定できるらしいのだが、その実装に苦労した。

 

SOLIDWORKS API のヘルプ

2017 SOLIDWORKS API Help - System Options > Export > PDF

 

他の項目については、全てチェック形式であるため、リンク内のSetUserPreferenceToggleで指定が可能。高精度ラインについても同じで、swPDFExportHighQualityをTrueで有効にする。DPIの指定がない場合は、200、600設定で出力されるようだ。

 

問題は、各DPIをどうやって指定するのか。ヘルプにはSetUserPreferenceIntegerとあるのだが、これでは設定ができなかった。

 

swPDFExportShadedDraftDPIで検索しても、5件しか引っかからなかったのだが、その中に答えはあった。

 

このサイト。SOLIDWORKSのフォーラムなのだが、似たような質問がされている。

 

forum.solidworks.com

 

最初読んだ際は、「この質問は未回答です」と表示されている上に、言語も異なっていたので、深くは読んでいなかった。ところが、最後の回答は解決に導く内容であったし、質問者もお礼を述べている。

 

この回答をVB.NET向けにすると

 

swApp.SetUserPreferenceIntegerValue(SwConst.swUserPreferenceIntegerValue_e.swPDFExportShadedDraftDPI, 600)

swApp.SetUserPreferenceIntegerValue(SwConst.swUserPreferenceIntegerValue_e.swPDFExportShadedDraftDPI, 600)

 

となるようだ。つまり、Valueが必要だったらしい。