ドキュメント名の設定 <TOP>
CreateDC
指定されたデバイスのデバイスコンテキストを、指定された名前で作成
DeleteDC
指定されたデバイスコンテキストを削除
Polygon
多角形の描画
StartDoc
印刷ジョブを開始
EndDoc
印刷ジョブを終了
StartPage
プリンタドライバがデータを受け取る準備をさせる
EndPage
1ページ書き込みの終了を通知
GetDC
ディスプレイデバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
左:起動時 中:設定したドキュメント名が表示される 右:印刷した状態
'================================================================ '= ドキュメント名の設定 '= (DocName.bas) '================================================================ #include "Windows.bi" Type POINTAPI x As Long y As Long End Type Type DOCINFO cbSize As Long lpszDocName As Long lpszOutput As Long lpszDatatype As Long fwType As Long End Type ' 指定されたデバイスのデバイスコンテキストを、指定された名前で作成 Declare Function Api_CreateDC& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName$, lpDeviceName As Any, lpOutput As Any, ByVal lpInitData As Any) ' 指定されたデバイスコンテキストを削除 Declare Function Api_DeleteDC& Lib "gdi32" Alias "DeleteDC" (ByVal hDC&) ' 直線により接続された2つ以上の頂点から成っているポリゴンを引く Declare Function Api_Polygon& Lib "gdi32" Alias "Polygon" (ByVal hDC&, lpPoint As Any, ByVal nCount&) ' 印刷ジョブを開始 Declare Function Api_StartDoc& Lib "gdi32" Alias "StartDocA" (ByVal hDC&, lpdi As DOCINFO) ' プリンタドライバがデータを受け取る準備をさせる Declare Function Api_StartPage& Lib "gdi32" Alias "StartPage" (ByVal hDC&) ' 1ページ書き込みの終了を通知 Declare Function Api_EndPage& Lib "gdi32" Alias "EndPage" (ByVal hDC&) ' 印刷ジョブを終了 Declare Function Api_EndDoc& Lib "gdi32" Alias "EndDoc" (ByVal hDC&) ' 指定されたウィンドウのデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared pa(4) As POINTAPI Var Shared n As Integer '================================================================ '= '================================================================ Declare Sub Polygon_Set() Sub Polygon_Set() pa(0).x = 110 * n pa(0).y = 20 * n pa(1).x = 45 * n pa(1).y = 65 * n pa(2).x = 75 * n pa(2).y = 135 * n pa(3).x = 145 * n pa(3).y = 135 * n pa(4).x = 175 * n pa(4).y = 65 * n End Sub '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hDC As Long Var Ret As Long hDC = Api_GetDC(GethWnd) n = 1 Polygon_Set Ret = Api_Polygon(hDC, pa(0), 5) Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var PrinterDC As Long Var di As DOCINFO Var Ret As Long di.cbSize = Len(di) di.lpszDocName = StrAdr("API-Guide Code Demonstration" & Chr$(0)) di.lpszOutput = StrAdr(Chr$(0)) di.lpszDatatype = StrAdr(Chr$(0)) PrinterDC = Api_CreateDC(ByVal 0, "pdfFactory Pro", Chr$(0), ByVal 0) Ret = Api_StartDoc(PrinterDC, di) Ret = Api_StartPage(PrinterDC) n = 10 Polygon_Set Ret = Api_Polygon(PrinterDC, pa(0), 5) Ret = Api_EndPage(PrinterDC) Ret = Api_EndDoc(PrinterDC) Ret = Api_DeleteDC(hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End