明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 951|回复: 7

请教下teigha 转pdf如何设置纸张大小,方向,及打印范围

[复制链接]
发表于 2024-6-21 14:54:45 | 显示全部楼层 |阅读模式
请教下teigha 转pdf如何设置纸张大小,方向,及打印范围,
官网下载的试用版例子没有看到.net的,
网上版本4.0无法转pdf,4.02可以转, 但是没有找到设置的方法, 请问大佬们遇到过这种情况吗
发表于 2024-6-21 15:12:15 | 显示全部楼层
自己写一个打印机驱动程序?
 楼主| 发表于 2024-6-21 18:23:00 | 显示全部楼层
我这两下子, 不太行
发表于 2024-8-21 16:24:02 | 显示全部楼层
发表于 2024-8-21 16:35:53 | 显示全部楼层
本帖最后由 Sring65 于 2024-9-2 13:41 编辑

3.9 试了下导出不了,可以试下aspose.cad网上有破解版本,还有论坛可以询问
  1. public static void Main(string[] args)
  2. {
  3.     //AsposeLisence.setLisence();//自行百度破解
  4.     // The path to the documents directory.

  5.     string MyDir = "C:\\Users\\Administrator\\Desktop\\test\\";
  6.     string filePathDWG = MyDir + "TestFile.dwg";
  7.     string filePathFinish = MyDir + "TestFile.dwg.pdf";
  8.     Stopwatch stopWatch = new Stopwatch();
  9.     try
  10.     {
  11.         stopWatch.Start();
  12.         Console.WriteLine("正在打开文件: " + filePathDWG);
  13.         using (CadImage cadImage = (CadImage)Image.Load(filePathDWG))
  14.         {
  15.             stopWatch.Stop();


  16.             // Get the elapsed time as a TimeSpan value.
  17.             TimeSpan ts = stopWatch.Elapsed;

  18.             // Format and display the TimeSpan value.
  19.             string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
  20.                 ts.Hours, ts.Minutes, ts.Seconds,
  21.                 ts.Milliseconds / 10);
  22.             Console.WriteLine("RunTime for loading " + elapsedTime);

  23.             CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
  24.             rasterizationOptions.PageWidth = 1600;
  25.             rasterizationOptions.PageHeight = 1600;
  26.             PdfOptions pdfOptions = new PdfOptions();
  27.             pdfOptions.VectorRasterizationOptions = rasterizationOptions;

  28.             stopWatch = new Stopwatch();
  29.             stopWatch.Start();
  30.             cadImage.Save(filePathFinish, pdfOptions);
  31.             stopWatch.Stop();

  32.             // Get the elapsed time as a TimeSpan value.
  33.             ts = stopWatch.Elapsed;

  34.             // Format and display the TimeSpan value.
  35.             elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
  36.                ts.Hours, ts.Minutes, ts.Seconds,
  37.                ts.Milliseconds / 10);
  38.             Console.WriteLine("RunTime for converting " + elapsedTime);
  39.         }
  40.     }
  41.     catch (Exception ex)
  42.     {
  43.         Console.WriteLine(ex.Message);

  44.     }

 楼主| 发表于 2024-9-12 22:34:37 | 显示全部楼层
Sring65 发表于 2024-8-21 16:35
3.9 试了下导出不了,可以试下aspose.cad网上有破解版本,还有论坛可以询问

谢谢大佬
发表于 2024-9-23 16:22:12 | 显示全部楼层
本帖最后由 Sring65 于 2024-9-23 16:24 编辑

teigha 4.02 pdf可以设置大小,成功导出指定大小页面

  1.   private void Update1() // export to pdf

  2.   {
  3.     OdRxModule mod = Globals.odrxDynamicLinker().loadApp("TD_PdfExport");
  4.     if (null == mod)
  5.     {
  6.       MessageBox.Show("Failed to load PDF export module", "Error");
  7.     }

  8.     Microsoft.Win32.SaveFileDialog dlgPdf = new Microsoft.Win32.SaveFileDialog();
  9.     dlgPdf.DefaultExt = ".pdf";
  10.     dlgPdf.Title = "PDF Export default";
  11.     dlgPdf.Filter = "PDF files|*.pdf";
  12.     // Display SaveFileDialog by calling ShowDialog method
  13.     if (dlgPdf.ShowDialog() != true)
  14.     {
  15.       return;
  16.     }

  17.     using (PDFExportParams Params = new PDFExportParams())
  18.     {
  19.       OdGsPageParams pParams = new OdGsPageParams();

  20.       Params.setDatabase(TDDatabase);
  21.       Params.setVersion(PDFExportParams.PDFExportVersions.kPDFv1_5);

  22.       using (OdStreamBuf file = Globals.odrxSystemServices().createFile(dlgPdf.FileName, FileAccessMode.kFileWrite, FileShareMode.kShareDenyNo, FileCreationDisposition.kCreateAlways))
  23.       {
  24.           Params.setOutput(file);
  25.           Params.setExportFlags(
  26.                        (PDFExportParams.PDFExportFlags.kEmbededTTF) |
  27.                        (PDFExportParams.PDFExportFlags.kSHXTextAsGeometry) | // no in sample
  28.                        //(PDFExportParams.PDFExportFlags.kTTFTextAsGeometry) | // no in sample
  29.                        (PDFExportParams.PDFExportFlags.kSimpleGeomOptimization) |
  30.                        (PDFExportParams.PDFExportFlags.kZoomToExtentsMode) |
  31.                        (PDFExportParams.PDFExportFlags.kEnableLayers) | // under condition
  32.                        (PDFExportParams.PDFExportFlags.kIncludeOffLayers) | // under condition
  33.                           (PDFExportParams.PDFExportFlags.kUseHLR) |
  34.                           (PDFExportParams.PDFExportFlags.kFlateCompression) |
  35.                           (PDFExportParams.PDFExportFlags.kASCIIHexEncoding) |
  36.                           (PDFExportParams.PDFExportFlags.kExportHyperlinks));

  37.         Params.setTitle(dlgPdf.Title);
  38.         //Params.setAuthor("WpfSample2");
  39.         //Params.setSubject("WpfSample2");
  40.         //Params.setKeywords("WpfSample2");
  41.         //Params.setCreator("WpfSample2");
  42.         //Params.setProducer("WpfSample2");

  43.         UInt32[] CurPalette = AllPalettes.getLightPalette();// OdDgColorTable.currentPalette(CurDb);
  44.         CurPalette[255] = 0x00ffffff; // the same as ODRGB(255, 255, 255); in the similar C++ code extract
  45.         //OdDbColorTable.correctPaletteForWhiteBackground(CurPalette);

  46.         Params.Palette = CurPalette;
  47.         Params.setBackground(CurPalette[0]);


  48.                   /*if (dlgPdf.m_Layouts == 1) // all
  49.                   {
  50.                     OdDbModelTable pModelTable = TDDatabase.getModelTable();
  51.                     if (null != pModelTable)
  52.                     {
  53.                       OdDgElementIterator pIter = pModelTable.createIterator();
  54.                       for (; !pIter.done(); pIter.step())
  55.                       {
  56.                         OdDgModel pModel = OdDgModel.cast(pIter.item().openObject());
  57.                         if (null != pModel)
  58.                         {
  59.                           Params.layouts.Add(pModel.getName());
  60.                         }
  61.                       }
  62.                     }
  63.                   }*/

  64.                   /*Params.layouts.Add(TDDatabase.findActiveLayout(true));

  65.                   UInt32 nPages = (UInt32)(1 > Params.layouts.Count ? 1 : Params.layouts.Count);

  66.                   OdGsPageParams pageParams = new OdGsPageParams();
  67.                   pageParams.set(210, 295);
  68.                   Params.pageParams.resize(nPages);*/
  69.                   OdGsPageParams pageParams = new OdGsPageParams();
  70.                   pageParams.set(400, 400);
  71.                   OdGsPageParamsArray odGsPageParamsArray = new OdGsPageParamsArray();
  72.                   odGsPageParamsArray.Add(pageParams);
  73.                   Params.setPageParams(odGsPageParamsArray);
  74.         PdfExportModule module = new PdfExportModule(OdRxModule.getCPtr(mod).Handle, false); //= PdfExportModule.cast();
  75.         OdPdfExport exporter = module.create();
  76.         UInt32 errCode = exporter.exportPdf(Params);

  77.         if (errCode != 0)
  78.         {
  79.           String errMes = exporter.exportPdfErrorCode(errCode);
  80.           String str;
  81.           str = string.Format("Error number : {0}. \n {1}", errCode, errMes);

  82.           if (errCode == 0x10008)
  83.           {
  84.             str += "\nPlease enable Zoom to extents check box or\ndefine page parameters for layout in page setup dialog.";
  85.           }

  86.           MessageBox.Show("PDF error", str);
  87.         }
  88.       }
  89.     }
  90.   }


 楼主| 发表于 2024-10-16 17:12:24 | 显示全部楼层
Sring65 发表于 2024-9-23 16:22
teigha 4.02 pdf可以设置大小,成功导出指定大小页面

哇塞, 谢谢谢谢大佬
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:43 , Processed in 0.165468 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表