DXF-Zeichnungen
Exportieren von DXF-Zeichnungen als PDF
Aspose.CAD bietet die Funktion, AutoCAD DXF-Zeichenentitäten zu laden und als gesamte Zeichnung im PDF-Format zu rendern. Der Ansatz zur DXF-zu-PDF-Konvertierung funktioniert wie folgt:
- Laden Sie die DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie ein Objekt der Klasse CadRasterizationOptions und setzen Sie die Eigenschaften PageHeight und PageWidth.
- Erstellen Sie ein Objekt der Klasse PdfOptions und setzen Sie die Eigenschaft VectorRasterizationOptions .
- Rufen Sie Image.Save auf und übergeben Sie ein Objekt von PdfOptions als zweiten Parameter.
Das folgende Codebeispiel zeigt, wie Sie eine Datei mit den Standardeinstellungen konvertieren.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportDXFDrawingToPDF.class) + "DXFDrawings/"; | |
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.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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
Unterstützte Formate
Derzeit unterstützen wir vollständig AutoCAD DXF 2010 Dateiformate. Frühere DXF-Versionen sind nicht garantiert zu 100% gültig. Wir planen, in zukünftigen Aspose.CAD-Versionen mehr Formate und Funktionen einzuschließen.
Unterstützte Entitäten
Derzeit unterstützen wir alle verbreiteten 2D-Entitäten und ihre grundlegenden Standardparameter wie folgt:
- Ausgerichtete Dimension
- Winkelabmessung
- Bogen
- Attribut
- Blockreferenz
- Kreis
- Durchmessersdimension
- Ellipse
- Schraffur
- Linie
- Mehrzeiliger Text
- Ordinatenabmessung
- Punkt
- Polylinie
- Radialabmessung
- Strahl
- Gedrehte Dimension
- Tabelle
- Text
- Xline
Speicherverwaltung
Die Eigenschaft ExactReallocateOnly kann verwendet werden, um die Speicherneuzuweisung zu steuern. Eine Neuzuweisung erfolgt höchstwahrscheinlich für vorab allokierte Caches. Sie kann auftreten, wenn das System feststellt, dass der zugeteilte Speicherplatz nicht ausreicht.
- Wenn ExactReallocateOnly auf den Standardwert, False, gesetzt ist, wird der Speicherplatz neu zugewiesen, um das gleiche Medium.
- Wenn es auf True gesetzt ist, darf die Neuzuweisung den maximal angegebenen Speicherplatz nicht überschreiten. In diesem Fall werden der vorhandene im Speicher allokierte Cache (der eine Neuzuweisung erfordert) freigegeben und zusätzlicher Speicherplatz wird auf der Festplatte allokiert.
Exportieren einer bestimmten Ebene von DXF-Zeichnungen als PDF
Dieser Ansatz funktioniert wie folgt:
- Öffnen Sie eine DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie eine Instanz von CadRasterizationOptions und geben Sie die Eigenschaften PageWidth und PageHeight an.
- Fügen Sie Ebenen zum Objekt von CadRasterizationOptions hinzu.
- Erstellen Sie eine Instanz von PdfOptions und setzen Sie die Eigenschaft VectorRasterizationOptions.
- Exportieren Sie die Zeichnung als PDF mithilfe der Methode Image.save .
Das folgende Codebeispiel zeigt, wie Sie eine spezifische Ebene von DXF in PDF konvertieren.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificLayerOfDXFDrawingToPDF.class) + "DXFDrawings/"; | |
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); | |
// Add desired layers | |
rasterizationOptions.getLayers().add("0"); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layer_out_.pdf", pdfOptions); |
Exportieren einer bestimmten Ebene von DXF-Zeichnungen als Bild
Dieser Ansatz funktioniert wie folgt:
- Öffnen Sie eine DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie eine Instanz von CadRasterizationOptions und geben Sie die Eigenschaften PageWidth und PageHeight an.
- Fügen Sie Ebenen zum Objekt von CadRasterizationOptions hinzu.
- Erstellen Sie eine Instanz von JpegOptions und setzen Sie die Eigenschaft VectorRasterizationOptions.
- Exportieren Sie die Zeichnung als Bild mithilfe der Methode Image.save .
Das folgende Codebeispiel zeigt, wie Sie eine spezifische Ebene von DXF in ein Bild konvertieren.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings\\"; | |
String srcFile = dataDir + "for_layers_test.dwf"; | |
DwfImage image =(DwfImage)Image.load(srcFile); | |
List<String> layersNames=image.getLayers().getLayersNames(); | |
DwfWhipLayer layer = image.getLayers().getLayerByName("0"); | |
for (DwfWhipLayer lr : image.getLayers()) | |
{ | |
//... | |
} | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
String[] stringArray = Arrays.copyOf(layersNames.toArray(), layersNames.toArray().length, String[].class); | |
List<String> stringList = Arrays.asList(stringArray); | |
// Add desired layers | |
rasterizationOptions.setLayers(stringList); | |
JpegOptions jpegOptions = new JpegOptions(); | |
jpegOptions.setVectorRasterizationOptions(rasterizationOptions); | |
String output = dataDir+"for_layers_test.jpg"; | |
// Export the DXF to Image | |
image.save(output, jpegOptions); | |
PDF-Dateien als Teil von DXF-Zeichnungen rendern
Dieser Ansatz funktioniert folgendermaßen:
- Laden Sie die DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie ein Objekt der Klasse CadRasterizationOptions und laden Sie PDF-Dateien.
- Setzen Sie die Eigenschaften PageHeight und PageWidth.
- Rufen Sie Image.save auf und speichern Sie die Datei.
Das folgende Codebeispiel zeigt, wie man PDF-Dateien als Teil von DXF-Zeichnungen rendert.
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.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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
Exportieren von DXF nach WMF
Dieser Ansatz funktioniert folgendermaßen:
- Laden Sie die DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie ein Objekt der Klasse CadRasterizationOptions und laden Sie PDF-Dateien.
- Setzen Sie die Eigenschaften PageHeight und PageWidth.
- Rufen Sie Image.save auf und speichern Sie die Datei.
Das folgende Codebeispiel zeigt, wie man DXF nach WMF exportiert.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
IfcImage cadImage = (IfcImage)Image.load((dataDir +"example.ifc")); | |
try | |
{ | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(100); | |
rasterizationOptions.setPageHeight(100); | |
WmfOptions wmfOptions = new WmfOptions(); | |
cadImage.save(dataDir+" example.ifc.wmf", wmfOptions); | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf"); | |
} |
Unterstützung beim Speichern von DXF-Dateien
Aspose.CAD bietet die Funktion, AutoCAD DXF-Dateien zu laden, Änderungen daran vorzunehmen und sie erneut als DXF-Datei zu speichern. Das folgende Codebeispiel zeigt, wie die angegebenen Anforderungen erreicht werden können
String dataDir = Utils.getDataDir(SaveDXFFiles.class) + "CADConversion/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage = (CadImage)Image.load(srcFile); | |
cadImage.save(dataDir+"conic.dxf"); | |
Einbetten von DGN-Unterbau für das DXF-Format exportieren
Aspose.CAD bietet die Funktion, AutoCAD DXF-Dateien zu laden und den eingebetteten DGN-Unterbau für das DXF-Format zu exportieren.
Das folgende Codebeispiel zeigt, wie die angegebenen Anforderungen erreicht werden können.
String dataDir = Utils.getDataDir(ExportEmbeddedDGN.class) + "ExportingDGN/"; | |
String fileName = dataDir + "BlockRefDgn.dwg"; | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(fileName); | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
objImage.save(dataDir + "BlockRefDgn.pdf", pdfOptions); | |
} |
Spezifisches DXF-Layout in PDF exportieren
Dieser Ansatz funktioniert wie folgt:
- Öffnen Sie eine DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Erstellen Sie eine Instanz von CadRasterizationOptions und geben Sie die Eigenschaften PageWidth und PageHeight an.
- Geben Sie die gewünschten Layoutnamen mit der Eigenschaft CadRasterizationOptions.Layouts an.
- Erstellen Sie eine Instanz von PdfOptions und setzen Sie die Eigenschaft VectorRasterizationOptions.
- Exportieren Sie die Zeichnung als PDF mithilfe der Methode Image.save .
Das folgende Codebeispiel zeigt, wie Sie ein bestimmtes Layout von DXF in PDF konvertieren.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings/"; | |
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); | |
// Specify desired layout name | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layout_out_.pdf", pdfOptions); |
Zugriff auf ATTRIB- und MTEXT-Objekte
Dieser Ansatz funktioniert wie folgt:
- Öffnen Sie eine DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Greifen Sie auf die Entitäten innerhalb der CAD-Datei zu.
- Überprüfen Sie die Entitäten CadEntityTypeName.MTEXT und CadEntityTypeName.INSERT.
- Fügen Sie sie einer temporären Liste für weitere Verarbeitung hinzu
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
List<CadBaseEntity> mtextList = new ArrayList<CadBaseEntity>(); | |
List<CadBaseEntity> attribList = new ArrayList<CadBaseEntity>(); | |
try | |
{ | |
for (CadBaseEntity entity : cadImage.getEntities()) | |
{ | |
if (entity.getTypeName() == CadEntityTypeName.MTEXT) | |
{ | |
mtextList.add(entity); | |
} | |
if (entity.getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
for (CadBaseEntity childObject : entity.getChildObjects()) | |
{ | |
if (childObject.getTypeName() == CadEntityTypeName.ATTRIB) | |
{ | |
attribList.add(childObject); | |
} | |
} | |
} | |
} | |
System.out.println("MText Size: "+ mtextList.size()); | |
System.out.println("Attribute Size: "+ attribList.size()); | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
Zerlegen von CAD-Insert-Objekten
Dieser Ansatz funktioniert wie folgt:
- Öffnen Sie eine DXF-Zeichnungsdatei mithilfe der Image.load Factory-Methode.
- Greifen Sie auf die Entitäten innerhalb der CAD-Datei zu.
- Überprüfen Sie auf CadEntityTypeName.INSERT Entitäten.
- Überprüfen Sie die Liste vom Typ CadBlockEntity.
- Verarbeiten Sie die Entitäten
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
try | |
{ | |
for (int i=0; i<cadImage.getEntities().length;i++) | |
{ | |
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
CadBlockEntity block = | |
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName()); | |
for (CadBaseEntity blockChild : block.getEntities()) | |
{ | |
// process entities | |
} | |
} | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} |
Unterstützung von Block-Clipping
Aspose.CAD bietet die Funktion des Block-Clipping. Der Ansatz zum Block-Cl