我希望能够在 AutoCAD 中向用户的“DWG 到 PDF” PC3 文件添加更多默认/自定义纸张尺寸(或者至少能够阅读它),但唯一的方法似乎是使用 AutoCAD 提供的界面。我知道 PC3 文件的位置,但是当我使用记事本之类的东西打开一个文件时,它似乎被压缩了。我希望能够使用 Visual Studio/VB.NET 来添加它们。必须有一种以编程方式执行此操作的方法。
该文件的标题显示:PIAFILEVERSION_2.0,PC3VER1,compress
我希望能够在 AutoCAD 中向用户的“DWG 到 PDF” PC3 文件添加更多默认/自定义纸张尺寸(或者至少能够阅读它),但唯一的方法似乎是使用 AutoCAD 提供的界面。我知道 PC3 文件的位置,但是当我使用记事本之类的东西打开一个文件时,它似乎被压缩了。我希望能够使用 Visual Studio/VB.NET 来添加它们。必须有一种以编程方式执行此操作的方法。
该文件的标题显示:PIAFILEVERSION_2.0,PC3VER1,compress
不幸的是,我们没有公共 API 来修改 PC3 文件。
有一个很好的解决方案可以改变打印机配置路径的偏好,让 cad serach 像这样对你的文件进行搜索。不要忘记在新的 pc3 文件中分离 pm 文件并在同一文件夹中保存一个新文件
Public Sub Plot()
Dim Ov As String, Nv As String
Ov = CdApp.Preferences.Files.PrinterConfigPath '' this is the old location
Nv = Application.StartupPath
CdApp.Preferences.Files.PrinterConfigPath = Nv '' this is the new location
Dim Lw(0 To 1) As Double, Up(0 To 1) As Double
Lw(0) = -0.5 : Lw(1) = -0.5 : Up(0) = 1 : Up(1) = 1
CdDoc.ActiveLayout.SetWindowToPlot(Lw, Up)
CdDoc.ActiveLayout.CenterPlot = True
'CdDoc.ActiveLayout.RefreshPlotDeviceInfo()
CdDoc.ActiveLayout.ConfigName = "Boules JPG.pc3" ''this is the file that i make
CdDoc.ActiveLayout.CanonicalMediaName = "UserDefinedRaster (1600.00 x 1600.00Pixels)"
CdDoc.ActiveLayout.PlotRotation = AutoCAD.AcPlotRotation.ac0degrees
CdDoc.ActiveLayout.PaperUnits = AutoCAD.AcPlotPaperUnits.acPixels
CdDoc.ActiveLayout.PlotType = AutoCAD.AcPlotType.acWindow
CdDoc.ActiveLayout.PlotWithLineweights = False
CdDoc.ActiveLayout.PlotWithPlotStyles = False
CdDoc.ActiveLayout.ScaleLineweights = False
CdDoc.ActiveLayout.ShowPlotStyles = False
CdDoc.ActiveLayout.StandardScale = AutoCAD.AcPlotScale.acScaleToFit
CdDoc.ActiveLayout.UseStandardScale = True
CdDoc.SetVariable("BACKGROUNDPLOT", 0)
Dim fil_jpg As String = Application.StartupPath & "\" & "Boules2.jpg"
CdDoc.Plot.PlotToFile(fil_jpg)
CdApp.Preferences.Files.PrinterConfigPath = Ov '' return the value to old location
End Sub
似乎这是不可能的,所以我研究了“打印”到 PDF 文件的其他选项。Microsoft 在打印机选择下拉列表中有一个选项,称为Microsoft Print to PDF,它也可用于完成自定义纸张尺寸,而无需修改 PC3 文件。自定义纸张尺寸可以通过编程方式添加到底层文件,但它有点复杂,涉及读取注册表和读取/写入系统假脱机文件夹,其中一个文件(XML 文件)需要保存为UTF8 无 BOM格式。
我不想抄袭别人的工作,也不想重新创建如此复杂的答案/解决方案,因此我将提供此链接到 Microsoft 答案论坛,以防其他人对该解决方案感兴趣: