3

这是我的情况:

  • 我正在为第 3 方程序开发 C# 插件
  • 该程序 (Revit) 使用自己的打印方法并通过其 API 公开它们
  • 我正在编写一个打印实用程序,它使用这些方法打印到各个位置,包括 PDF 打印机
  • 我正在使用 PDF995 作为打印机并修改其 .ini 文件以使其自动化。
  • 基本上,我在 API 中调用 print 方法,将活动图形打印到指定的打印机。

我的问题是,在 PDF995 上,如果您转到 Windows 中的打印首选项,则方向默认设置为“纵向”。我需要风景。这些设置似乎覆盖了我在 Revit API 中设置的任何内容,因此我需要一种更改 Windows 设置的方法。

我试过这段代码:

PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings.PrinterName = "PDF995";
printDocument.DefaultPageSettings.Landscape = true;

在调用 API 中的 print 函数之前,但它没有区别。我也看不到编辑 pdf995 ini 来设置这些设置的方法。这是我需要覆盖的 Windows 设置。

我在网上看到了一些 C++ 代码,我可以调用它来处理打印机,但找不到更改默认设置的示例。

谁能指出我正确的方向?

4

2 回答 2

2

我使用这些组件取得了很好的成功:

http://www.merrioncomputing.com/Download/PrintQueueWatch/index.htm http://printqueuewatch.codeplex.com/Wiki/View.aspx?title=Home

该集合提供了各种有用的打印选项。它主要专注于监控打印队列,但从内存中可以选择更改打印机设置和作业属性。

于 2009-07-17T06:41:41.603 回答
0

我认为使用 Autodesk.Revit.DB.PrintManager 的许多设置都是“占位符”,但是如果打印机正在控制这些设置,则 Revit 移植给它的值将被忽略。我尝试使用完整路径设置 .PrintToFileName,但在 BlueBeam 中制作 PDF 仍会将文件发送到 MyDocuments,我必须从那里复制它。您是否尝试过将 PDF995 复制到 PDF995X(例如)并将其修改为默认为横向(而 PDF995 保留默认为纵向)?过去,当打印机坚持使用存储的默认值而不是请求的默认值时,我曾经使用过这种方法。

于 2017-04-20T12:39:47.720 回答