AutoCAD處理工具Aspose.CAD最新版三大新功能推薦——支持水印、CF2格式和OLE對象

来源:https://www.cnblogs.com/mnrssj-Aspsoe/archive/2019/10/23/11726137.html
-Advertisement-
Play Games

Aspose.CAD for .NET是一個獨立的AutoCAD處理API。它提供將DWG,DWF和DXF文件轉換為高質量PDF和光柵圖像的功能。開發人員可以從AutoCAD文件中選擇和轉換特定的佈局和圖層,並輕鬆跟蹤整個文件轉換過程。 近期Aspose.CAD for .Net更新至最新版v19. ...


Aspose.CAD for .NET是一個獨立的AutoCAD處理API。它提供將DWG,DWF和DXF文件轉換為高質量PDF和光柵圖像的功能。開發人員可以從AutoCAD文件中選擇和轉換特定的佈局和圖層,並輕鬆跟蹤整個文件轉換過程。

近期Aspose.CAD for .Net更新至最新版v19.9,新增了三個非常實用的新功能——支持通用文件格式、支持水印、支持OLE對象,接下來,我們通過示例來瞭解新增功能!

支持通用文件格式

CF2文件是可以由CAD / CAM軟體和硬體設備處理的三維設計。例如,它可以在摺疊之前存儲紙板箱的形狀和設計。Aspose.CAD提供設備載入通用文件格式,並將其轉換為其他格式,如PDF。下麵的代碼示例演示如何載入通用文件格式的文件並將其轉換為PDF。

  // The path to the documents directory.
            string MyDir = RunExamples.GetDataDir_ConvertingCFF();

            using (Image image = Image.Load(MyDir + "WineBottle_Die.cf2"))
            {
                var options = new PdfOptions();
                image.Save(MyDir + "WineBottle_Die_out.pdf",options);
            }複製代碼

基於Java的示例是:

String dataDir = Utils.getDataDir(CFFToPDF.class) + "CFF/";
//源文件的路徑
String sourceFilePath = dataDir+"WineBottle_Die.cf2";
        
Image image = Image.load(sourceFilePath);
{
    PdfOptions options = new PdfOptions();
    image.save(dataDir + "WineBottle_Die_out.pdf",options);
}複製代碼

支持水印

水印可防止任何人使用您的專有圖像或文件。如果添加它們,您將能夠保護您的工作,並阻止任何想要使用您的圖像或文件來促進其項目或業務的未經您許可的人。Aspose.CAD允許您在DWG文件中添加水印。這可以通過創建具有特定文本高度,旋轉度,樣式,調整的Text或MText實體來完成,還應對其進行調整以提供良好的外觀。

下麵的代碼顯示瞭如何使用Aspose.CAD for .NET實現目標。

  //文檔目錄的路徑。
            string MyDir = RunExamples.GetDataDir_DWGDrawings();
            

           using(CadImage cadImage = (CadImage)Image.Load(MyDir + "Drawing11.dwg")) {

                //添加新的MTEXT
                CadMText watermark = new CadMText();
                watermark.Text = "Watermark message";
                watermark.InitialTextHeight = 40;
                watermark.InsertionPoint = new Cad3DPoint(300, 40);
                watermark.LayerName = "0";
                cadImage.BlockEntities["*Model_Space"].AddEntity(watermark);

                // 或添加更簡單的實體,例如Text
                CadText text = new CadText();
                text.DefaultValue = "Watermark text";
                text.TextHeight = 40;
                text.FirstAlignment = new Cad3DPoint(300, 40);
                text.LayerName = "0";
                cadImage.BlockEntities["*Model_Space"].AddEntity(text);

                // 導出為pdf
                CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
                rasterizationOptions.PageWidth = 1600;
                rasterizationOptions.PageHeight = 1600;
                rasterizationOptions.Layouts = new[] { "Model" };
                PdfOptions pdfOptions = new PdfOptions();
                pdfOptions.VectorRasterizationOptions = rasterizationOptions;
                cadImage.Save(MyDir + "AddWatermark_out.pdf", pdfOptions);

            }複製代碼

基於Java的示例是:

String dataDir = Utils.getDataDir(AddWatermark.class) + "DWGDrawings/";
////源文件的路徑
String sourceFilePath = dataDir+"Drawing11.dwg";
        
CadImage cadImage = (CadImage) Image.load(sourceFilePath);
        
//添加新的MTEXT
CadMText watermark = new CadMText();
watermark.setText("Watermark message");
watermark.setInitialTextHeight(40);
watermark.setInsertionPoint(new Cad3DPoint(300, 40));
watermark.setLayerName("0");
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(watermark);
                 
// 或添加更簡單的實體,例如Text
CadText text = new CadText();
text.setDefaultValue("Watermark text");
text.setTextHeight(40);
text.setFirstAlignment(new Cad3DPoint(300, 40));
text.setLayerName("0") ;
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(text);
                      
//導出為pdf
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
rasterizationOptions.setLayouts(new String[]{"Model"});
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(dataDir + "AddWatermark_out.pdf", pdfOptions);複製代碼

支持OLE對象

對象鏈接和嵌入(OLE)是Microsoft Windows的一項功能,它使您可以將信息從一個應用程式複製或移動到另一個應用程式,同時又保留了在原始應用程式中編輯信息的能力。Aspose.CAD現在支持從DWG格式導出嵌入式OLE對象。

下麵的代碼顯示瞭如何使用Aspose.CAD for .NET實現目標。

 // The path to the documents directory.
            string MyDir = RunExamples.GetDataDir_DWGDrawings();

            string[] files = new string[] { "D ZD junior D10m H2m.dwg", "ZD - Senior D6m H2m45.dwg" };

            PngOptions pngOptions = new PngOptions { };
            CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
            pngOptions.VectorRasterizationOptions = rasterizationOptions;
            rasterizationOptions.Layouts = new string[] { "Layout1" };

            foreach (string file in files)
            {
                using (CadImage cadImage = (CadImage)Image.Load(MyDir + file))
                {
                    cadImage.Save(MyDir + file + "_out.png", pngOptions);
                }
            }

基於Java的示例是:

String dataDir = Utils.getDataDir(ExportOLEObjects.class) + "DWGDrawings/";    
    
String[] files = new String[] { "D ZD junior D10m H2m.dwg", "ZD - Senior D6m H2m45.dwg" };
    
PngOptions pngOptions = new PngOptions();
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
pngOptions.setVectorRasterizationOptions(rasterizationOptions);
rasterizationOptions.setLayouts(new String[] { "Layout1" });
    
        for(String file : files)
        {
            CadImage cadImage = (CadImage)Image.load(dataDir + file);
            
                cadImage.save(dataDir + file + "_out.png", pngOptions);
            
        }

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文摘自LTP.NET知識庫。 正則表達式的形式一般如下: 其中位於“/”定界符之間的部分就是將要在目標對象中進行匹配的模式。 用戶只要把希望查找匹配對象的模式內容放入“/”定界符之間即可。 為了能夠使用戶更加靈活的定製模式內容,正則表達式提供了專門的“ 元字元 ”。 所謂元字元就是指那些在正則表達 ...
  • 本人嘗試著利用C#語言來寫一個房貸計算器控制台程式。由於剛開始學,錯誤與失誤之處會很多。希望大家多多批評指正,我會持續改進。謝謝大家。 using System;using System.Collections.Generic;using System.Linq;using System.Text; ...
  • 問題 有一批數據,需要對每個元素進行相同的操作。該操作是計算密集型的,需要耗費一定的時間。 解決方案 常見的操作可以粗略分為 計算密集型操作 和 IO密集型操作。計算密集型操作主要是依賴於CPU計算,所以可以最大限度利用多核CPU的並行操作非常適合計算密集型操作。圖像操作是比較常見的計算密集型操作, ...
  • 我們在使用到WINFORM窗體工作中,要求RichTextBox 加入行號; 之前有看到大牛們寫的,但是太複雜繁多,而且有用雙TextBox進行聯動,非常不錯,今天我們嘗試RichTextBox +Panel相互聯動如下效果. 左側灰色為Panel,右側為RichTextBox 控制項 1:準備Pan ...
  • 最近,物聯網的概念比較熱門,一大批廠商搶著占領物聯網的高低,包括有華為物聯網、阿裡雲物聯網、騰訊物聯網、AWS物聯網等等,無法一一列舉,一般物聯網包含設備側開發、平臺側開發、應用側開發,三個部分構成了線上線下的完整連接,和我們常規的微信應用、釘釘應用等不同,物聯網的終端是由各種各樣的設備組合而成,這... ...
  • 加入NLog 按照官網的文檔 https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2 一步一步操作下來,即可設置好。 配置文件的設置參考 http://www.makaidong.com/%E5%8D%9A%E5%A ...
  • 場景 FastReport安裝包下載、安裝、去除使用限制以及工具箱中添加控制項: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100893794 Winform中使用FastReport實現簡單的自定義PDF導出: https:/ ...
  • 狀態模式 簡介 在狀態模式(State Pattern)中,類的行為是基於它的狀態改變的。這種類型的設計模式屬於行為型模式。在狀態模式中,我們創建表示各種狀態的對象和一個行為隨著狀態對象改變而改變的 context 對象。 特點 意圖:允許對象在內部狀態發生改變時改變它的行為,對象看起來好像修改了它 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...