Výkresy DWG

Export DWG Výkresů do PDF

Aspose.CAD for Java API dokáže načíst výkresy v formátu DWG z programu AutoCAD a převést je do formátu PDF. Toto téma vysvětluje použití Aspose.CAD API k dosažení konverze z DWG do formátu PDF prostřednictvím jednoduchých kroků, jak jsou definovány níže.

Formát souborů DWG

DWG je binární soubor obsahující vektorová data obrázků a metadata. Vektorová data obrázků poskytují instrukce CAD aplikaci o tom, jak zobrazit DWG; metadata mohou obsahovat různé informace o souboru, včetně dat specifických pro umístění a také klienta. Otevřené specifikace formátu souborů DWG lze najít v tomto PDF.

Konverze souborů DWG do PDF

Následující jednoduché kroky jsou vyžadovány k převedení DWG do PDF.

  1. Načtěte soubor DWG do instance Image.
  2. Vytvořte objekt třídy CadRasterizationOptions a nastavte vlastnosti PageHeight a PageWidth.
  3. Vytvořte objekt třídy PdfOptions a nastavte vlastnost VectorRasterizationOptions.
  4. Zavolejte metodu Image.save a předejte objekt PdfOptions jako druhý parametr.

Následující ukázkový kód ukazuje, jak exportovat výkresy DWG do PDF.

String srcFile = dataDir + "Bottom_plate.dwg";
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.setBackgroundColor(Color.getWhite());
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
objImage.save(dataDir + "Bottom_plate_out_.pdf", pdfOptions);

Vytvoření jednoho PDF s různými velikostmi rozvržení

Aspose.CAD for Java vám umožňuje převést soubor DWG na jediné PDF s různými velikostmi rozvržení. Tento přístup funguje následovně:

  1. Načtěte soubor DWG pomocí tovární metody Aspose.CAD.Image.load.
  2. Vytvořte instanci třídy CadRasterizationOptions a nastavte výsledné výšky a šířky stránky.
  3. Přidejte požadované LayoutPageSizes pro objekt CadRasterizationOptions.
  4. Vytvořte instanci třídy PdfOptions a nastavte jeho vlastnost VectorRasterizationOptions.
  5. Exportujte obrázek do PDF pomocí metody Image.save.

Následující ukázkový kód ukazuje, jak vytvořit jedno PDF s různými rozvrženími.

String dataDir = Utils.getDataDir(SinglePDFWithDifferentLayouts.class) + "DWGDrawings/";
CadImage cadImage = (CadImage)Image.load(dataDir + "City skyway map.dwg");
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1000);
rasterizationOptions.setPageHeight(1000);
//custom sizes for several layouts
rasterizationOptions.getLayoutPageSizes().addItem("ANSI C Plot", new SizeF(500, 1000));
rasterizationOptions.getLayoutPageSizes().addItem("8.5 x 11 Plot", new SizeF(1000, 100));
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(dataDir + "singlePDF_out.pdf", pdfOptions);

Export DWG do PDF/A a PDF/E

Následující jednoduché kroky jsou vyžadovány k převedení DWG do PDF.

  1. Načtěte soubor DWG do instance Image.
  2. Vytvořte objekt třídy CadRasterizationOptions a nastavte vlastnosti PageHeight a PageWidth .
  3. Vytvořte objekt třídy PdfOptions a nastavte vlastnost VectorRasterizationOptions.
  4. Zavolejte metodu Image.save() a předejte objekt PdfOptions jako druhý parametr.

Následující ukázkový kód ukazuje, jak exportovat výkresy DWG do PDF.

String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
pdfOptions.setCorePdfOptions(new PdfDocumentOptions());
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1a);
objImage.save(dataDir+"Saved1.pdf", pdfOptions);
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1b);
objImage.save(dataDir+"Saved.pdf", pdfOptions);

Podporované základny Autocad Primitives

Následující základny Autocad jsou podporovány.

  • TEXT
  • MTEXT
  • ATTDEF
  • ATTRIB
  • ARC
  • ELLIPSE
  • HATCH
  • LEADER
  • POINT
  • VERTEX 2D
  • VERTEX 3D
  • POLYLINE 2D
  • LWPOLYLINE
  • RAY
  • CIRCLE
  • DIMENSION ORDINATE
  • DIMENSION LINEAR
  • DIMENSION ALIGNED
  • DIMENSION ANG 3Pt
  • DIMENSION ANG 2Ln
  • DIMENSION RADIUS
  • DIMENSION DIAMETER
  • SHAPE
  • SOLID
  • SPLINE
  • MLINE
  • LINE
  • XLINE
  • STYLE
  • DIMSTYLE
  • LTYPE
  • MLINESTYLE
  • LAYER
  • VIEWPORT
  • LAYOUT

Export konkrétního rozvržení DWG do PDF

Tento postup funguje následujícím způsobem:

  1. Načtěte soubor DWG pomocí tovární metody Image.load.
  2. Vytvořte instanci třídy CadRasterizationOptions a nastavte výsledné výšky a šířky stránky.
  3. Nastavte vlastnost Layouts pro objekt CadRasterizationOptions.
  4. Vytvořte instanci třídy PdfOptions a nastavte jeho vlastnost VectorRasterizationOptions.
  5. Exportujte obrázek do PDF pomocí metody Image.save().

Následující ukázkový kód ukazuje, jak konvertovat konkrétní rozvržení DWG do PDF.

String srcFile = dataDir + "visualization_-_conference_room.dwg";
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);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Layout1"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);

Export DWG do Rastrového obrázku nebo PDF pomocí pevné velikosti

Aspose.CAD for Java API dokáže načíst výkresy v formátu DWG z programu AutoCAD a převést je do formátu PDF nebo Raster pomocí pevné velikosti.

Následující ukázkový kód ukazuje, jak implementovat tuto funkci.

public static void main(String[] args)
{
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportDWGToPDFOrRaster.class) + "DWGDrawings/";
String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
Boolean currentUnitIsMetric = IsMetric(objImage.getUnitType());
int currentUnitCoefficient = objImage.getUnitType();
if (currentUnitIsMetric)
{
double metersCoeff = 1 / 1000.0;
double scaleFactor = metersCoeff / currentUnitCoefficient;
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth((float)(210 * scaleFactor));
rasterizationOptions.setPageHeight((float)(297 * scaleFactor));
rasterizationOptions.setUnitType(UnitType.Millimeter);
}
else
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth((float)(8.27f / currentUnitCoefficient));
rasterizationOptions.setPageHeight((float)(11.69f / currentUnitCoefficient));
rasterizationOptions.setUnitType(UnitType.Inch);
}
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
objImage.save(dataDir+"Saved.pdf", pdfOptions);
}
public static Boolean IsMetric(int initial)
{
Boolean isMetric = true;
switch (initial)
{
case UnitType.Inch:
case UnitType.MicroInch:
case UnitType.Mil:
case UnitType.Foot:
case UnitType.Yard:
case UnitType.Mile:
case UnitType.Unitless:
isMetric = false;
}
return isMetric;
}
private Double Coefficient(int unitType)
{
Double coefficient = 1.0;
switch (unitType)
{
case UnitType.Parsec:
coefficient = 3.0857 * 10000000000000000.0;
break;
case UnitType.LightYear:
coefficient = 9.4607 * 1000000000000000.0;
break;
case UnitType.AstronomicalUnit:
coefficient = 1.4960 * 100000000000.0;
break;
case UnitType.Gigameter:
coefficient = 1000000000.0;
break;
case UnitType.Kilometer:
coefficient = 1000.0;
break;
case UnitType.Decameter:
coefficient = 10.0;
break;
case UnitType.Hectometer:
coefficient = 100.0;
break;
case UnitType.Meter:
coefficient = 1.0;
break;
case UnitType.Centimenter:
coefficient = 0.01;
break;
case UnitType.Decimeter:
coefficient = 0.1;
break;
case UnitType.Millimeter:
coefficient = 0.001;
break;
case UnitType.Micrometer:
coefficient = 0.000001;
break;
case UnitType.Nanometer:
coefficient = 0.000000001;
break;
case UnitType.Angstrom:
coefficient = 0.0000000001;
break;
case UnitType.Inch:
coefficient = 1.0;
break;
case UnitType.MicroInch:
coefficient = 0.000001;
break;
case UnitType.Mil:
coefficient = 0.001;
break;
case UnitType.Foot:
coefficient = 12.0;
break;
case UnitType.Yard:
coefficient = 36.0;
break;
case UnitType.Mile:
coefficient = 63360.0;
break;
}
return coefficient;
}

Podpora zaoblených skrytých linií při exportu DWG/DXF do BMP a PDF

Tento postup funguje následovně:

  1. Načtěte soubor DWG pomocí metody Aspose.CAD.Image.load.
  2. Vytvořte instanci třídy CadRasterizationOptions.
  3. Vytvořte instanci třídy CadRasterizationOptions a nastavte výsledné výšky a šířky stránky.
  4. Vytvořte instanci třídy PdfOptions a nastavte jeho vlastnost VectorRasterizationOptions.
  5. Exportujte obrázek do PDF pomocí metody Image.save().

Následující ukázkový kód ukazuje, jak implementovat tuto funkci.

// The path to the resource directory.
String dataDir = Utils.getDataDir(SupportForHiddenLines.class) + "DWGDrawings/";
String sourceFilePath = dataDir + "Bottom_plate.dwg";
String outPath = dataDir + "Bottom_plate.pdf";
CadImage cadImage = (CadImage)Image.load(sourceFilePath);
List<String> list = Arrays.asList("Print","L1_RegMark","L2_RegMark");
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageHeight(cadImage.getHeight());
rasterizationOptions.setPageWidth(cadImage.getWidth()) ;
rasterizationOptions.setLayers(list);
PdfOptions pdfOptions = new PdfOptions();
rasterizationOptions.setLayouts(new String[] { "Model" });
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(outPath, pdfOptions);
System.out.println("\nThe DWG file exported successfully to PDF.\nFile saved at " + dataDir);

Podpora pro nastavení oblasti tisku pro obrázek DWG ve vyexportovaném PDF

Aspose.CAD for Java API dokáže načíst výkresy v formátu DWG z programu AutoCAD a převést je do formátu PDF. Toto téma popisuje použití Aspose.CAD API k dosažení podpory pro nastavení oblasti tisku obrázku DWG ve vyexportovaném PDF.

Následující ukázkový kód ukazuje, jak implementovat tuto funkci.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "visualization_-_conference_room.dwg";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Specify desired layout name
rasterizationOptions.Layouts = new string[] { "Layout1" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "ExportSpecificLayoutToPDF_out.pdf";
//Export the DWG to PDF
image.Save(MyDir, pdfOptions);
}

Podpora pro čtení metadat XREF pro soubor DWG

  1. Načtěte soubor DWG pomocí metody Aspose.CAD.Image.load.
  2. Projděte každý entitní obrázek.
  3. Pokud je entita CadUnderlay, pak entita XREF s metadaty.

Následující ukázkový kód ukazuje, jak dosáhnout této funkce.

CadImage image = (CadImage)Image.load(dataDir+"Bottom_plate.dwg");
{
for (CadBaseEntity entity : image.getEntities())
{
if (entity instanceof CadUnderlay)
{
//XREF entity with metadata
Cad3DPoint insertionPoint = ((CadUnderlay) entity).getInsertionPoint();
String path = ((CadUnderlay) entity).getUnderlayPath();
}
}
}

Dokument DWG stanovující souřadnice

Aspose.CAD for Java API nyní poskytuje funkci pro zobrazování dokumentů DWG poskytnutím souřadnic šířky a výšky dokumentu.

Následující ukázka kódu ukazuje, jak zobrazit dokument DWG.

String srcFile = dataDir + "visualization_-_conference_room.dwg";
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);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Layout1"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);

Vlastnost CadRasterizationOptions.Layouts je polem řetězců, takže můžete specifikovat více než jedno rozvržení současně pro možnou konverzi do formátu PDF. Při specifikování několika rozvržení pro vlastnost CadRasterizationOptions.Layouts, výsledné PDF bude mít několik stránek, kde každá stránka reprezentuje jednotlivé rozvržení AutoCadu.

Výčet všech rozvržení

Můžete vypsat všechny rozvržení přítomné v kresbě programu AutoCAD pomocí následujícího kódu.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
CadImage cadImage = (CadImage)image;
CadLayoutDictionary layouts = cadImage.getLayouts();
for (CadLayout layout : layouts.getValues())
{
System.out.println("Layout " + layout.getLayoutName());
}

Získání hodnoty atributu bloku externí reference

Aspose.CAD for Java API vám umožňuje získat externí reference atributu bloku. Aspose.CAD API vystavuje vlastnost getXRefPathName() k získání externí reference atributu bloku v kolekci CadBlockDictionary.

Následující kód ukazuje, jak získat externí reference atributu bloku.