在我的应用程序的页面设置选项中,用户需要选择页面大小,然后,根据所选的页面大小,它将在屏幕上显示根据尺寸调整大小的面板(例如A4选择= 8.5 x 11英寸,面板将按这些像素尺寸调整大小.
然后,当用户单击“打印”时,Panel的内容将被绘制为具有所选尺寸的pdf文件.
我正在使用wpdf组件集,特别是TWPpdfPrinter组件来创建pdf.
我的问题:
>如何获取所有纸张尺寸名称的列表,以及如何获取wpdfPrinter的相应尺寸?
提前致谢.
解决方法 要获取系统中定义的所有打印机表单的列表:uses winspool,printers;...procedure TForm1.button1Click(Sender: TObject);var HPrinter: THandle; Forms: array of TFormInfo1; Count,Needed,Returned: DWORD; i: Integer;begin Memo1.Clear; if OpenPrinter(nil,HPrinter,nil) then begin try if not EnumForms(HPrinter,1,nil,Returned) then begin // we should fail here since we dIDn't pass a buffer if GetLastError <> ERROR_INSUFFICIENT_BUFFER then RaiseLastOSError; Count := (Needed div SizeOf(TFormInfo1)) + 1; SetLength(Forms,Count); if EnumForms(HPrinter,@Forms[0],SizeOf(TFormInfo1) * Count,Returned) then begin if Returned < Count then SetLength(Forms,Returned); for i := 0 to Returned - 1 do begin Memo1.lines.Add(Format('Paper name: %s,Paper size: %dmm x %dmm',[Forms[i].pname,Forms[i].Size.cx div 1000,Forms[i].Size.cy div 1000])) end; end else RaiseLastOSError; end; finally ClosePrinter(HPrinter); end; end else RaiseLastOSError;end;总结
以上是内存溢出为你收集整理的delphi – 如何获取所有纸张尺寸名称和相应的像素尺寸?全部内容,希望文章能够帮你解决delphi – 如何获取所有纸张尺寸名称和相应的像素尺寸?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)