OptimizeBeforeClose プロパティ

PDFファイルハンドルが閉じられるときに、そのファイルを最適化するか否かを指示するフラグを取得/設定する。

ブール型

注意点

デフォルトで、このプロパティは、 OpenFile またはOpenMem がコールされた時点で PDFProcessor オブジェクトのOptimizeAfterEachProcess プロパティからその状態を引き継ぎます。もし、OptimizeAfterEachProcess が設定されていなければ、その時のOptimizeBeforeClose のデフォルト値はFalseです。

このプロパティがTrueに設定されている場合、PDFへのハンドルが閉じられる時に、PDFProcessor オブジェクトのOptimize メソッドが自動的にコールされます。

PDFProcessorHandle クラス自身は、最適化の機能を持っていないということに注意してください。つまり、出力を最適化するための唯一の方法は、Close または CloseMem をコールする以前にOptimizeBeforeClose をTrue に設定すること、または出力をディスクへ書き出し、そして物理的ファイル上のPDFProcessor オブジェクトからOptimize をコールすることです。前述のアプローチの方が、より効率的です。

VBScript における使用例

Set oProcessor = CreateObject("easyPDF.PDFProcessor.7")
Set oProcessorHandle = oProcessor.OpenFile("C:\input.pdf", "C:\output.pdf")
oProcessorHandle.AddHyperlink 0, _
                              0, _
                              50, _
                              80, _
                              370, _
                              100, _
                              "http://www.bcltechnologies.com/", _
                              PRC_BORDERSTYLE_DASHLINE_MEDIUM, _
                              RGB(255, 0, 0)
oProcessorHandle.AddStamp "C:\image.jpg", _
                          0, _
                          PRC_STAMP_HPOS_CENTER, _
                          PRC_STAMP_VPOS_CENTER, _
                          PRC_STAMP_ZORDER_TOP, _
                          0, _
                          0, _
                          0, _
                          100
oProcessorHandle.OptimizeBeforeClose = True
     
oProcessorHandle.Close
   

VB.NET における使用例

Dim inMem() As Byte = File.ReadAllBytes("C:\input.pdf")
Dim oProcessor As PDFProcessor = Nothing
Dim oProcessorHandle As PDFProcessorHandle = Nothing
Try
   oProcessor = New PDFProcessor
   oProcessorHandle = oProcessor.OpenMem(inMem, Nothing)
   oProcessorHandle.AddHyperlink(0, _
                                 0, _
                                 50, _
                                 80, _
                                 370, _
                                 100, _
                                 "http://www.bcltechnologies.com", _
                                 prcAnnotBorderStyle.PRC_BORDERSTYLE_DASHLINE_MEDIUM, _
                                 0)
   oProcessorHandle.AddStamp("C:\image.jpg", _
                             0, _
                             prcStampHPosition.PRC_STAMP_HPOS_CENTER, _
                             prcStampVPosition.PRC_STAMP_VPOS_CENTER, _
                             prcStampZOrder.PRC_STAMP_ZORDER_TOP, _
                             0, _
                             0, _
                             0, _
                             100)
      oProcessorHandle.OptimizeBeforeClose = True
   Dim outMem() As Byte = oProcessorHandle.CloseMem()
   File.WriteAllBytes("C:\output.pdf", outMem)
Catch ex As System.Runtime.InteropServices.COMException
   MessageBox.Show(ex.Message)
Finally
   oProcessorHandle.Close()
End Try

C#における使用例

byte[] inMem = File.ReadAllBytes(@"C:\input.pdf");
PDFProcessor oProcessor = null;
PDFProcessorHandle oProcessorHandle = null;
try
{
   oProcessor = new PDFProcessor();
   oProcessorHandle = oProcessor.OpenMem(inMem, null);
   oProcessorHandle.AddHyperlink(0, 
                                 0, 
                                 50, 
                                 80, 
                                 370, 
                                 100, 
                                 "http://www.bcltechnologies.com", 
                                 prcAnnotBorderStyle.PRC_BORDERSTYLE_DASHLINE_MEDIUM, 
                                 0);
   oProcessorHandle.AddStamp(@"C:\image.jpg", 
                             0, 
                             prcStampHPosition.PRC_STAMP_HPOS_CENTER, 
                             prcStampVPosition.PRC_STAMP_VPOS_CENTER, 
                             prcStampZOrder.PRC_STAMP_ZORDER_TOP, 
                             0, 
                             0, 
                             0, 
                             100);
      oProcessorHandle.OptimizeBeforeClose = true;
   byte[] outMem = (byte[])oProcessorHandle.CloseMem();
   File.WriteAllBytes(@"C:\output.pdf", outMem);
}
catch(System.Runtime.InteropServices.COMException ex)
{
   MessageBox.Show(ex.Message);
}
finally
{
   oProcessorHandle.Close();
}