当前位置:编程学习 > C#/ASP.NET >>

自定义纸张,预览正常,打印不正常为啥啊?

用 new PrintPreviewDialog()预览,但是点击打印,用虚拟打印机打印出来,为啥还是按照 A4 纸张打印的啊?太郁闷了,还有 PrintPreviewDialog() 对话框为啥,不能没有“调用设置对话框” 按钮,来选择打印机啊?  --------------------编程问答-------------------- 只有自己定下了,期待结果 --------------------编程问答-------------------- 帮lz加点人气。。 --------------------编程问答-------------------- procedure TZcPrinter.SetPrinterPaper;
begin
  FPrinter.GetPrinter(FDevice, FDriver, FPort, FDeviceMode);
  try
    FMode:=GlobalLock(FDeviceMode);
    if FMode<>nil then
    begin
      if IsCustomSize(FSetPaperSize) then
      begin
        FMode^.dmFields := FMode^.dmFields or DM_PAPERSIZE;
        FMode^.dmPaperSize := DMPAPER_USER;

        FMode^.dmFields := FMode^.dmFields or DM_PAPERLENGTH or DM_PAPERWIDTH ;
        FMode^.dmPaperWidth:=trunc(FSetPaperWidth); //这个地方是要 0.1mm为基准的数据
        FMode^.dmPaperLength:=trunc(FSetPaperHeight);
      end else
      begin
        FMode^.dmFields := FMode^.dmFields or DM_PAPERSIZE;
        FMode^.dmPaperSize :=FSetPaperSize;
        FMode^.dmPaperWidth:=0;
        FMode^.dmPaperLength:=0;
      end;

      FMode^.dmFields := FMode^.dmFields or DM_ORIENTATION;
      FMode^.dmOrientation :=FSetPaperOrient;

      if (FSetPaperBin and $FFFF) = $FFFF then
      begin
        FMode^.dmFields := FMode^.dmFields or DM_DEFAULTSOURCE;
        FMode.dmDefaultSource := FSetPaperBin;
      end;
    end;
  finally
    GlobalUnlock(FDeviceMode);
  end;
end;
=========================================
这个是我delphi写的代码,非常正确,谁能帮我翻译成C#呢? --------------------编程问答-------------------- 顶了啊,使劲的顶啊。 --------------------编程问答-------------------- 顶啊,顶啊顶啊顶啊顶啊顶啊顶啊顶啊 --------------------编程问答-------------------- 预览你系统的正常,打印你开发系统不正常,而且还有就是打印office也正常的情况。
象这些类似的情况,大部分原因是打印驱动没有安装好,你先把打印驱动重新安装下,这个问题基本可以解决的。 --------------------编程问答-------------------- 预览你系统的正常,打印你开发系统不正常,而且还有就是打印office也正常的情况。
象这些类似的情况,大部分原因是打印驱动没有安装好,你先把打印驱动重新安装下,这个问题基本可以解决的。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,