Konverze výkresů CAD do formátů PDF a rastrových obrázků
Aspose.CAD pro Java přímo zapisuje informace o API a verzi do výstupních dokumentů. Například při vykreslování dokumentu do formátu PDF, Aspose.CAD pro Java vyplňuje pole Aplikace hodnotou ‘Aspose.CAD’ a pole Výrobce PDF hodnotou, např. ‘Aspose.CAD v 17.9’.
Všimněte si, že nemůžete nasměrovat Aspose.CAD pro Java k tomu, aby tuto informaci z výstupních dokumentů změnil nebo odstranil.
Konvertování výkresů CAD do rastrových obrazových formátů
Aspose.CAD pro Java je schopný konvertovat formáty výkresů CAD, jako jsou DXF & DWG do podporovaných rastrových obrazových formátů, jako jsou PNG, BMP, TIFF, JPEG & GIF. API Aspose.CAD pro Java poskytuje efektivní a snadno použitelné prostředky k dosažení tohoto cíle. Můžete konvertovat jakýkoli podporovaný formát výkresu CAD do rastrových obrazových formátů pomocí jednoduchých kroků, jak je níže podrobně popsáno.
- Načtěte soubor CAD do instance Image.
- Vytvořte instanci CadRasterizationOptions a nastavte její povinné vlastnosti, jako je PageWidth a PageHeight.
- Vytvořte instanci ImageOptionsBase a nastavte její vlastnost VectorRasterizationOptions na instanci CadRasterizationOptions vytvořenou v předchozím kroku.
- Zavolejte metodu Image.save předáním cesty k souboru (nebo objektu MemoryStream) a instance ImageOptionsBase vytvořené v předchozím kroku.
Zde je kompletní zdrojový kód.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
// Set page width & height | |
rasterizationOptions.setPageWidth(1200); | |
rasterizationOptions.setPageHeight(1200); | |
// Create an instance of PngOptions for the resultant image | |
ImageOptionsBase options = new PngOptions(); | |
//Set rasterization options | |
options.setVectorRasterizationOptions(rasterizationOptions); | |
// Save resultant image | |
image.save(dataDir + "conic_pyramid_raster_image_out_.png", options); |
Ve výchozím nastavení API vykresluje pouze rozvržení “Model”. Nicméně je také možné specifikovat požadovaná rozvržení při konvertování výkresů CAD do obrazových formátů.
Přizpůsobení konverze CAD
Procedury konverze z CAD do PDF a z CAD do rastrových obrazových formátů jsou vysoce konfigurovatelné, protože třída CadRasterizationOptions byla implementována tak, že poskytuje mnoho nepovinných funkcí, které po nastavení mohou přepsat proces vykreslování podle potřeb aplikace.
Třída CadRasterizationOptions
Třída CadRasterizationOptions je společná pro všechny podporované formáty CAD, jako jsou DWG & DXF, proto jsou sdílené informace v tomto článku platné pro oba výše zmíněné formáty CAD.
Nejpoužitečnější vlastnosti třídy CadRasterizationOptions jsou:
Vlastnost | Výchozí Hodnota | Povinná | Popis |
---|---|---|---|
PageWidth | 0 | Ano | Specifikuje šířku stránky. |
PageHeight | 0 | Ano | Specifikuje výšku stránky. |
ScaleMethod | ScaleType.ShrinkToFit | Ne | Specifikuje, zda má být výkres automaticky zvětšen nebo zmenšen. Výchozí hodnota automaticky zmenší obrázek, aby zapadl do velikosti plátna. Přepněte do režimu GrowToFit nebo použijte nastavení None k deaktivaci automatického měřítka. |
BackgroundColor | Color.White | Ne | Specifikuje barvu pozadí výstupního obrazu. |
DrawType | CadDrawTypeMode.UseDrawColor | Ne | Určuje režim barevnosti entity. Specifikujte možnost UseObjectColor pro vykreslování entit jejich vlastní barvou nebo možnost UseDrawColor pro přepsání původních barev. |
DrawColor | Color.Black | Ne | Specifikuje přepsanou barvu entity (pouze pokud je DrawType nastaven na hodnotu vlastnosti UseDrawColor). |
AutomaticLayoutsScaling | False | Ne | Určuje, zda má být provedeno automatické škálování rozvržení pro shodu s modelovým rozvržením. |
Nastavení Velikosti Plátna a Režimu
Exportování z CAD do PDF nebo z CAD do rastrových obrazových formátů není triviální úloha. Protože výsledný PDF nebo obrázek vyžaduje definovanou velikost plátna, je třeba specifikovat výstupní rozměry pro stránku PDF, aby bylo možné výkres správně vykreslit. Explicitně nastavte vlastnosti CadRasterizationOptions.PageWidth a CadRasterizationOptions.PageHeight, abyste zabránili výjimce ImageSaveException.
Dále můžete specifikovat volby změny měřítka. Možnosti měřítka jsou nastaveny vlastností CadRasterizationOptions.ScaleMethod. Použijte tuto možnost k automatickému nastavení rozměrů obrázku podle hodnot CadRasterizationOptions.PageWidth a CadRasterizationOptions.PageHeight. Výchozí hodnota vlastnosti CadRasterizationOptions.ScaleMethod je nastavena na režim ScaleType.ShrinkToFit. Tato vlastnost definuje následující chování:
- Pokud jsou rozměry CAD výkresu větší než velikost výsledného plátna, jsou rozměry výkresu zmenšeny, aby se vešly do výsledného plátna a současně byl zachován poměr stran.
- Pokud jsou rozměry CAD výkresu menší než velikost výsledného plátna, nastavte vlastnost CadRasterizationOptions.ScaleMethod na ScaleType.GrowToFit, abyste zvětšili rozměry výkresu do velikosti PDF plátna a současně zachovali poměr stran.
- Nebo zakážete automatické škálování pomocí možnosti ScaleType.None.
Následující ukázkový kód ukazuje použití možnosti automatického škálování.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
rasterizationOptions.setAutomaticLayoutsScaling(true); | |
rasterizationOptions.setNoScaling(true); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export CAD to PDF | |
objImage.save(dataDir +"result_out_.pdf", pdfOptions); | |
// Create an instance of TiffOptions | |
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default); | |
// Set the VectorRasterizationOptions property | |
tiffOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export CAD to TIFF | |
objImage.save(dataDir + "result_out_.tiff", tiffOptions); |
Nastavení Barev Pozadí a Kreslení
Ve výchozím nastavení je barevná paleta pro výsledné plátno nastavena na běžný barevný schéma dokumentu. To znamená, že všechny entity uvnitř CAD výkresu jsou vykresleny černým perem na pevném bílém pozadí. Tyto nastavení lze změnit pomocí vlastností CadRasterizationOptions.BackgroundColor a CadRasterizationOptions.DrawColor. Změna vlastnosti CadRasterizationOptions.DrawColor vyžaduje také nastavení vlastnosti CadRasterizationOptions.DrawType, abyste mohli použít vykreslení barvy. Vlastnost CadRasterizationOptions.DrawType řídí, zda mají CAD entity zachovat své barvy nebo být převedeny na vlastní barvy. Pro zachování barev entit zadejte CadRasterizationOptions.DrawType jako CadDrawTypeMode.UseObjectColor, jinak zadejte hodnotu CadDrawTypeMode.UseDrawColor.
Následující ukázkový kód ukazuje použití různých barevných vlastností.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
// Image image = Image.load(srcFile); | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBeige()); | |
rasterizationOptions.setDrawType(CadDrawTypeMode.UseDrawColor); | |
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlue()); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export CAD to PDF | |
objImage.save(dataDir +"result_out_.pdf", pdfOptions); | |
// Create an instance of TiffOptions | |
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default); | |
// Set the VectorRasterizationOptions property | |
tiffOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export CAD to TIFF | |
objImage.save(dataDir + "result_out_.tiff", tiffOptions); |
Nastavení Automatického Škálování Rozvržení
Většina CAD výkresů obsahuje více než jedno rozvržení uložené v jediném souboru a každé rozvržení může mít různé rozměry. Při vykreslování takových CAD výkresů do PDF každá stránka PDF může mít jiné měřítko podle velikosti rozvržení. Aby bylo dosaženo homogenního vykreslování, Aspose.CAD API umožňuje nastavit vlastnost CadRasterizationOptions.AutomaticLayoutsScaling. Výchozí hodnota je false, ale pokud je nastavena na true, API bude hledat odpovídající měřítko pro každé samostatné rozvržení a vykreslí je odpovídajícím způsobem provádějíce automatickou operaci zvětšení nebo zmenšení podle velikosti stránky.
Níže je uvedeno, jak vlastnost CadRasterizationOptions.AutomaticLayoutsScaling spolupracuje s vlastností CadRasterizationOptions.ScaleMethod.
- Pokud je ScaleMethod nastaven na ScaleType.ShrinkToFit nebo ScaleType.GrowToFit s AutomaticLayoutsScaling nastaven na false, pak všechna rozvržení (včetně Modelu) budou zpracována podle první možnosti.
- Pokud je ScaleMethod nastaven na ScaleType.ShrinkToFit nebo ScaleType.GrowToFit s AutomaticLayoutsScaling nastaveno na true, pak všechna rozvržení (kromě Modelu) budou zpracována podle své velikosti, zatímco Model bude zpracován podle první možnosti.
- Pokud je ScaleMethod nastaven na ScaleType.None s AutomaticLayoutsScaling nastaveno na true nebo false, pak se neprovede žádné škálování.
Následující ukázkový kód ukazuje, jak nastavit automatické škálování rozvržení pro konverzi CAD do PDF.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
// Set Auto Layout Scaling | |
rasterizationOptions.setAutomaticLayoutsScaling(true); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the CAD to PDF | |
image.save(dataDir + "result_out_.pdf", pdfOptions); |
Konvertování rozvržení CAD do rastrových obrazových formátů
API Aspose.CAD pro Java umožňuje konvertovat rozvržení CAD podporovaných formátů, jako jsou DXF & DWG, do rastrových obrázků, jako jsou PNG, BMP, TIFF, JPEG & GIF. API také nabízí podporu k vykreslení konkrétních rozvržení CAD k různým vrstvám PSD. API Aspose.CAD pro Java poskytuje efektivní a snadno použitelné prostředky k určení seznamu požadovaných rozvržení CAD a jejich vykreslení do rastrových obrazových formátů. Níže je popsáno, jak toho můžete dosáhnout v 5 jednoduchých krocích.
- Načtěte CAD soubor do instance Image pomocí tovární metody load.
- Vytvořte instanci CadRasterizationOptions a nastavte její povinné vlastnosti, jako jsou PageWidth a PageHeight.
- Specifikujte požadovaný název rozvržení pomocí vlastnosti CadRasterizationOptions.Layouts.
- Vytvořte instanci ImageOptionsBase a nastavte její vlastnost VectorRasterizationOptions na instanci CadRasterizationOptions vytvořenou v předchozím kroku.
- Zavolejte metodu Image.Save předáním cesty k souboru (nebo objektu MemoryStream) a instance ImageOptionsBase vytvořené v předchozím kroku.
Zde je kompletní zdrojový kód.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
// Set page width & height | |
rasterizationOptions.setPageWidth(1200); | |
rasterizationOptions.setPageHeight(1200); | |
// Specify a list of layout names | |
rasterizationOptions.setLayouts(new String[] {"Model", "Layout1"}); | |
// Create an instance of TiffOptions for the resultant image | |
ImageOptionsBase options = new TiffOptions(TiffExpectedFormat.Default); | |
// Set rasterization options | |
options.setVectorRasterizationOptions(rasterizationOptions); | |
// Save resultant image | |
image.save(dataDir + "conic_pyramid_layoutstorasterimage_out_.tiff", options); |