よろずやネット

最近はLibreofficeにハマっています。

PDFエクスポート

私のマイクロソフトオフィスはオフィス2000なので、PDFエクスポートという機能はない。
最近のマイクロソフトオフィスにPDFエクスポート機能があるのかどうか知らないが、オープンオフィスにはPDFエクスポート機能が付いているので、これにトライしてみよう。

以下のサイトに様々な形式で保存するコード例がある。
http://www.oooforum.org/forum/viewtopic.phtml?t=4996&highlight=pdf

これをVB.NET風に書き換えてみる。

' ConvertToURL関数は以前紹介済み
Dim cURL As String =ConvertToURL( "C:\Test.pdf" )

Dim oExpParm(0) As Object
oExpParm(0) = MakePropertyValue("FilterName", "calc_pdf_Export" )
oCalcDoc.storeToURL( cURL, oExpParm )

このコードの実行の注意点:
1.同じ名前のファイルが存在している時には、上書きされる。
2.Calc(カルク)のブック全体(全てのシート)がPDF化される。


特定のシートをPDFにする方法:
http://www.oooforum.org/forum/viewtopic.phtml?t=59410
によれば、特定のシートのみをPDFエクスポートする直接的な手段はないようだ。
(不要なシートを非表示にするという方法で、特定シートのPDF化は可能だ)


下記ページによると、PDFエクスポートにはいろいろなオプションの設定が可能のようだ。
http://www.oooforum.org/forum/viewtopic.phtml?t=64805

これを単純にVB.NET風に書き換えて実行してみた。エラーは発生しないが、動作しない。

************ このコードは意図通りに動作しない ****************
Dim cURL As String =ConvertToURL( "C:\Test.pdf" )

Dim oOptParm(7) As Object
oOptParm(0) = MakePropertyValue("RestrictPermissions", True)
oOptParm(1) = MakePropertyValue("PermissionPassword", "1234" )
oOptParm(2) = MakePropertyValue("Changes", 0)
oOptParm(3) = MakePropertyValue("EncryptFile", True)
oOptParm(4) = MakePropertyValue("DocumentOpenPassword", "1234" )
oOptParm(5) = MakePropertyValue("EnableCopyingOfContent", False)
oOptParm(6) = MakePropertyValue("Printing", 0)
oOptParm(7) = MakePropertyValue("EnableTextAccessForAccessibilityTools", False)

Dim oExpParm(1) As Object
oExpParm(0) = MakePropertyValue("FilterName", "calc_pdf_Export" )
oExpParm(1) = MakePropertyValue("FilterData", oOptParm)
oCalcDoc.storeToURL( cURL, oExpParm )
************ ここまで ****************

下記ページ(Java)でも、動作しないことが話題になっている。
http://www.oooforum.org/forum/viewtopic.phtml?t=53836

オプションの設定がどうしても必要というわけではないが、気持ちがすっきりしない。
誰かVB.Netでのやり方を教えて下さい。お願いです。