Disegni DWG
Esportazione di Disegni DWG in PDF
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e convertirli in PDF. Questo argomento spiega l’uso dell’API Aspose.CAD per ottenere la conversione da DWG a formato PDF attraverso semplici passaggi come definiti di seguito.
L’API supporta le seguenti revisioni AutoCAD DWG:
- DWG 2004 versione 16.0 rilascio 18
- DWG 2005 versione 16.1
- DWG 2010 versione 18.0
- DWG 2013 versione 19.0
Formato File DWG
Un DWG è un file binario che contiene dati di immagine vettoriale e metadati. I dati di immagine vettoriale forniscono istruzioni all’applicazione CAD su come visualizzare il DWG; i metadati possono contenere una varietà di informazioni sul file, comprese informazioni specifiche sulla posizione e anche dati del cliente. Le specifiche aperte per il formato file DWG possono essere trovate in questo PDF
Convertire File DWG in PDF
I seguenti semplici passaggi sono necessari per convertire DWG in PDF.
- Caricare il file DWG in un’istanza di Image.
- Creare un oggetto della classe CadRasterizationOptions e impostare le proprietà PageHeight e PageWidth.
- Creare un oggetto della classe PdfOptions e impostare la proprietà VectorRasterizationOptions.
- Chiamare il metodo Image.save e passare l’oggetto di PdfOptions come secondo parametro.
Il campione di codice seguente mostra come esportare i Disegni DWG in 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); |
Creare un PDF Singolo con Diverse Dimensioni di Layout
Aspose.CAD per Java consente di convertire il file DWG in un singolo PDF con diverse dimensioni di layout. Questo approccio funziona come segue:
- Caricare un file DWG utilizzando il metodo factory Aspose.CAD.Image.load.
- Creare un’istanza della classe CadRasterizationOptions e impostare l’altezza e la larghezza della pagina risultante.
- Aggiungere le LayoutPageSizes richieste per l’oggetto CadRasterizationOptions.
- Creare un’istanza della classe PdfOptions e impostare la sua proprietà VectorRasterizationOptions.
- Esportare l’immagine in PDF utilizzando il metodo Image.save .
Il campione di codice seguente mostra come creare un singolo PDF con diversi layout.
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); | |
Esportazione di DWG in PDF/A e PDF/E
I seguenti semplici passaggi sono necessari per convertire DWG in PDF.
- Caricare il file DWG in un’istanza di Image.
- Creare un oggetto della CadRasterizationOptions e impostare le proprietà PageHeight e PageWidth.
- Creare un oggetto della classe PdfOptions e impostare la proprietà VectorRasterizationOptions.
- Chiamare il Image.save metodo e passare l’oggetto di PdfOptions come secondo parametro.
Il campione di codice seguente mostra come esportare Disegni DWG in 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); |
Primitivi AutoCAD Supportati
I seguenti primitivi AutoCAD sono supportati.
- TESTO
- MTEXT
- ATTDEF
- ATTRIB
- ARC
- ELLISSE
- RIFORO
- LEADER
- PUNTO
- VERTICE 2D
- VERTICE 3D
- POLILINEA 2D
- LWPOLYLINE
- RAGGIO
- CERCHIO
- DIMENSIONE ORDINATA
- DIMENSIONE LINEARE
- DIMENSIONE ALLINEATA
- DIMENSIONE ANG 3Pt
- DIMENSIONE ANG 2Ln
- DIMENSIONE RAGGIO
- DIMENSIONE DIAMETRO
- FORMA
- SOLIDO
- SPLINE
- MLINE
- LINEA
- XLINE
- STILE
- DIMSTYLE
- LTYPE
- MLINESTYLE
- LAYER
- VIEWPORT
- LAYOUT
Esportazione di un Layout DWG Specifico in PDF
Questo approccio funziona come segue:
- Caricare un file DWG utilizzando il metodo factory Image.load.
- Creare un’istanza della classe CadRasterizationOptions e impostare l’altezza e la larghezza della pagina risultante.
- Impostare la proprietà Layouts per l’oggetto CadRasterizationOptions.
- Creare un’istanza della classe PdfOptions e impostare la sua proprietà VectorRasterizationOptions.
- Esportare l’immagine in PDF utilizzando il Image.save() metodo.
Il campione di codice seguente mostra come convertire un layout specifico di DWG in 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); |
Esportazione di DWG in Raster o PDF utilizzando Dimensione Fissa
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e convertirli in PDF o Raster utilizzando dimensione fissa.
Il campione di codice seguente mostra come implementare questa funzionalità.
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; | |
} | |
Supporto per linee nascoste arrotondate durante l’esportazione di DWG/DXF in BMP e PDF
Questo approccio funziona come segue:
- Caricare un file DWG utilizzando il Aspose.CAD.Image.load metodo factory.
- Creare un’istanza della CadRasterizationOptions classe.
- Creare un’istanza della CadRasterizationOptions classe e impostare l’altezza e la larghezza della pagina risultante.
- Creare un’istanza della PdfOptions classe e impostare la sua VectorRasterizationOptions proprietà.
- Esportare l’immagine in PDF utilizzando il Image.save() metodo.
Il campione di codice seguente mostra come implementare questa funzionalità.
Supporto per la definizione dell’area di stampa per l’immagine DWG nel PDF esportato
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e convertirli in PDF. Questo argomento spiega l’uso dell’API Aspose.CAD per ottenere il supporto per la definizione di un’area di stampa per l’immagine DWG nel PDF esportato.
Il campione di codice seguente mostra come implementare questa funzionalità.
// 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); | |
} |
Supporto per la lettura dei metadati XREF per il file DWG
- Caricare un file DWG utilizzando il Aspose.CAD.Image.load metodo factory.
- Percorrere ogni entità immagine.
- Se l’entità è CadUnderlay, allora entità XREF con metadati.
Il campione di codice seguente mostra come ottenere questa funzionalità.
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(); | |
} | |
} | |
} |
Documento DWG specificando le coordinate
Aspose.CAD per Java API ora fornisce una funzionalità per rendere i documenti DWG fornendo le coordinate della larghezza e dell’altezza del documento.
Il campione di codice seguente mostra come rendere un documento 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); | |
La proprietà CadRasterizationOptions.Layouts è di tipo array di stringhe, quindi puoi specificare più layout contemporaneamente per una possibile conversione in formato PDF. Quando si specificano più layout per la proprietà CadRasterizationOptions.Layouts, il PDF risultante avrà più pagine, dove ogni pagina rappresenta un layout AutoCAD individuale.
Elenca Tutti i Layout
Puoi elencare tutti i layout presenti in un disegno AutoCAD utilizzando il seguente frammento di codice.
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()); | |
} | |
Ottenere il Valore Attributo di Blocco di Riferimento Esterno
Aspose.CAD per Java API consente di ottenere un riferimento esterno di un attributo di blocco. Aspose.CAD API espone la getXRefPathName() proprietà per ottenere il riferimento esterno di un attributo di blocco in una collezione CadBlockDictionary.
Il seguente codice dimostra come ottenere un riferimento esterno di un attributo di blocco.
// Load an existing DWG file as CadImage. | |
CadImage cadImage = (CadImage) Image.load(dataDir + "sample.dwg"); | |
// Access the external path name property | |
CadStringParameter sXternalRef = cadImage.getBlockEntities().get_Item("*MODEL_SPACE").getXRefPathName(); | |
System.out.println(sXternalRef); |
Cerca Testo nel File DWG AutoCAD
Aspose.CAD per Java API consente di cercare testo in un file DWG AutoCAD. Aspose.CAD API espone la classe CadText che rappresenta le entità di testo nel file DWG AutoCAD. La classe CadMText è anche inclusa nell’API Aspose.CAD perché alcune altre entità possono contenere testo.
Il seguente codice dimostra come cercare testo nel file DWG AutoCAD.
private static final String dataDir = Utils.getDataDir(SearchTextInDWGAutoCADFile.class) + "DWGDrawings/"; | |
public static void main(String[] args) { | |
// Search Text In DWG AutoCAD File | |
searchTextInDWGAutoCADFile(); | |
// Search For Text In Specific Layout | |
} | |
public static void searchTextInDWGAutoCADFile() | |
{ | |
//String dataDir="Test_Apsose.CAD\\"; | |
// Load an existing DWG file as CadImage. | |
CadImage cadImage = (CadImage) CadImage.load(dataDir + "sample_file.dwg"); | |
for (CadBaseEntity entity : cadImage.getEntities()) | |
{ | |
IterateCADNodeEntities(entity); | |
} | |
// Search for text in the block section | |
for (CadBlockEntity blockEntity : cadImage.getBlockEntities().getValues()) | |
{ | |
for (CadBaseEntity entity : blockEntity.getEntities()) | |
{ | |
IterateCADNodeEntities(entity); | |
} | |
} | |
} | |
//Recursive function to iterate nodes inside nodes | |
private static void IterateCADNodeEntities(CadBaseEntity obj) | |
{ | |
switch (obj.getTypeName()) | |
{ | |
case CadEntityTypeName.TEXT: | |
CadText childObjectText = (CadText) obj; | |
System.out.println(childObjectText.getDefaultValue()); | |
break; | |
case CadEntityTypeName.MTEXT: | |
CadMText childObjectMText = (CadMText) obj; | |
System.out.println(childObjectMText.getText()); | |
break; | |
case CadEntityTypeName.INSERT: | |
CadInsertObject childInsertObject = (CadInsertObject) obj; | |
for (CadBaseEntity tempobj : childInsertObject.getChildObjects()) | |
{ | |
IterateCADNodeEntities(tempobj); | |
} | |
break; | |
case CadEntityTypeName.ATTDEF: | |
CadAttDef attDef = (CadAttDef) obj; | |
System.out.println(attDef.getDefaultString()); | |
break; | |
case CadEntityTypeName.ATTRIB: | |
CadAttrib attAttrib = (CadAttrib) obj; | |
System.out.println(attAttrib.getDefaultText()); | |
break; | |
} | |
} | |
Cerca Testo in un Layout Specifico
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Load an existing DWG file as CadImage. | |
CadImage cadImage = (CadImage) CadImage.load(dataDir + "sample_file.dwg"); | |
// get all layout names and link each layout with corresponding block with entities | |
CadLayoutDictionary layouts = cadImage.getLayouts(); | |
String[] layoutNames = new String[layouts.size()]; | |
int i = 0; | |
for (com.aspose.cad.fileformats.cad.cadobjects.CadLayout layout : layouts.getValues()) { | |
layoutNames[i++] = layout.getLayoutName(); | |
System.out.println("Layout " + layout.getLayoutName() + " is found"); | |
// find block, applicable for DWG only | |
CadBlockTableObject blockTableObjectReference = null; | |
for (CadBlockTableObject tableObject : cadImage.getBlocksTables()) { | |
if (String.CASE_INSENSITIVE_ORDER.compare(tableObject.getHardPointerToLayout(), layout.getObjectHandle()) == 0) { | |
blockTableObjectReference = tableObject; | |
break; | |
} | |
} | |
// Collection cadBlockEntity.Entities contains information about all entities on specific layout | |
// if this collection has no elements it means layout is a copy of Model layout and contains the same entities | |
// Below line of code is for reference | |
CadBlockEntity cadBlockEntity = cadImage.getBlockEntities().get_Item(blockTableObjectReference.getBlockName()); | |
} |
Accesso ai Flag di sottofondo per il formato DWG
Aspose.CAD per Java ha implementato i flag di sottofondo per il formato DWG e consente agli sviluppatori di accedervi. Seguendo vi è una semplice dimostrazione del codice.
String dataDir = Utils.getDataDir(AccessingUnderlayFlagsofDWG.class) + "DWGDrawings/"; | |
String fileName = dataDir + "BlockRefDgn.dwg"; | |
// Load an existing DWG file and convert it into CadImage | |
com.aspose.cad.fileformats.cad.CadImage image = (com.aspose.cad.fileformats.cad.CadImage) com.aspose.cad.Image.load(fileName); | |
// Go through each entity inside the DWG file | |
for (com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity entity : image.getEntities()) | |
{ | |
// Check if entity is of CadDgnUnderlay type | |
if (entity instanceof com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay) | |
{ | |
// Access different underlay flags | |
com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay underlay = (com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay) entity; | |
System.out.println(underlay.getUnderlayPath()); | |
System.out.println(underlay.getUnderlayName()); | |
System.out.println(underlay.getInsertionPoint().getX()); | |
System.out.println(underlay.getInsertionPoint().getY()); | |
System.out.println(underlay.getRotationAngle()); | |
System.out.println(underlay.getScaleX()); | |
System.out.println(underlay.getScaleY()); | |
System.out.println(underlay.getScaleZ()); | |
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn); | |
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn); | |
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome) != com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome); | |
break; | |
} | |
} |
Supporto per Entità DWG
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e supportare diverse entità su cui lavorare.
Supporto per l’Entità MLeader
Un DWG è un file binario che contiene dati di immagine vettoriale e metadati. Ci sono diverse entità in un file DWG. La seguente sezione descrive un esempio di lavoro con l’entità MLeader all’interno del file DWG.
String file = dataDir + "Multileaders.dwg"; | |
Image image = Image.load(file); | |
// Test | |
CadImage cadImage = (CadImage)image; | |
Assert.areNotEqual(cadImage.getEntities().length, 0); | |
CadMLeader cadMLeader = (CadMLeader)cadImage.getEntities()[2]; | |
Assert.areEqual(cadMLeader.getStyleDescription(), "Standard"); | |
Assert.areEqual(cadMLeader.getLeaderStyleId(), "12E"); | |
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639"); | |
Assert.areEqual(cadMLeader.getLeaderLineTypeID(), "14"); | |
CadMLeaderContextData context = cadMLeader.getContextData(); | |
Assert.areEqual(context.getArrowHeadSize(), 30.0, 0.1); | |
Assert.areEqual(context.getBasePoint().getX(), 481, 1); | |
Assert.areEqual(context.getContentScale(), 1.0, 0.01); | |
Assert.areEqual(context.getDefaultText().getValue(), "This is multileader with huge text\\P{\\H1.5x;6666666666666666666666666666\\P}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); | |
Assert.areEqual(context.hasMText(), true); | |
CadMLeaderNode mleaderNode = context.getLeaderNode(); | |
Assert.areEqual(mleaderNode.getLastLeaderLinePoint().getX(), 473, 1); | |
CadMLeaderLine leaderLine = mleaderNode.getLeaderLine(); | |
Assert.areEqual(leaderLine.getBreakEndPoint().toString(), null); | |
Assert.areEqual(Integer.toString(leaderLine.getBreakPointIndex().getValue()), Integer.toString(0)); | |
Assert.areEqual(leaderLine.getBreakStartPoint().toString(), null); | |
Assert.areEqual(Integer.toString(leaderLine.getLeaderLineIndex().getValue()), Integer.toString(0)); | |
Assert.areEqual(Integer.toString(leaderLine.getLeaderPoints().size()), Integer.toString(4)); | |
Assert.areEqual(Integer.toString(mleaderNode.getBranchIndex()), Integer.toString(0)); | |
Assert.areEqual(mleaderNode.getDogLegLength(), 8.0, 0.1); | |
Assert.areEqual(context.hasMText(), true); | |
// Assert.IsTrue((context.hasMText()==true , "Invalid Z value"); | |
Assert.areEqual(context.getTextAttachmentType().getValue(), (short)1); | |
Assert.areEqual(context.getTextBackgroundColor().getValue(), 18); | |
Assert.areEqual(context.getTextHeight(), 20.0, 0.1); | |
Assert.areEqual(context.getTextStyleID().getValue(), "11"); | |
Assert.areEqual(context.getTextRotation().getValue(), 0.0, 0.01); | |
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639"); | |
Assert.areEqual(cadMLeader.getLeaderType(), 1); | |
Assert.areEqual(cadMLeader.getBlockContentColor(), 0); | |
Assert.areEqual(cadMLeader.getLeaderLineColor(), 0); | |
Assert.areEqual(cadMLeader.getTextHeight(), 1.0, 0.01); | |
Supporto per l’Esportazione di Entità DWG in Immagine
Un DWG è un file binario che contiene dati di immagine vettoriale e metadati. Ci sono diverse entità in un file DWG. La seguente sezione descrive un esempio di esportazione di una particolare entità DWG nell’immagine.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ParticularDWGToImage.class) + "DWGDrawings/"; | |
String sourceFilePath = dataDir + "visualization_-_conference_room.dwg"; | |
CadImage cadImage = ((CadImage)(Image.load(sourceFilePath))); | |
CadBaseEntity[] entities = cadImage.getEntities(); | |
List<CadBaseEntity> filteredEntities = new ArrayList<CadBaseEntity>(); | |
for (CadBaseEntity baseEntity : entities) { | |
// selection or filtration of entities | |
if ((baseEntity.getTypeName() == CadEntityTypeName.TEXT)) { | |
filteredEntities.add(baseEntity); | |
} | |
} | |
CadBaseEntity[] arr = new CadBaseEntity[filteredEntities.size()]; | |
cadImage.setEntities(filteredEntities.toArray(arr)); | |
// 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); | |
String outFile = dataDir + "result_out_generated.pdf"; | |
// Export the CAD to PDF | |
cadImage.save(outFile, pdfOptions); |
Supporto per Importare Immagine in File DWG
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e supportare diverse entità con cui lavorare. Un DWG è un file binario che contiene dati di immagine vettoriale e metadati. Ci sono diverse entità in un file DWG. La seguente sezione descrive come possiamo importare immagini all’interno del file DWG.
Supporto per Aggiungere testo in DWG
Aspose.CAD per Java API può caricare disegni AutoCAD in formato DWG e supportare diverse entità con cui lavorare. Un DWG è un file binario che contiene dati di immagine vettoriale e metadati. Ci sono diverse entità in un file DWG. La seguente sezione descrive come possiamo aggiungere testo all’interno del file DWG.
String dataDir = Utils.getDataDir(AddTextInDWG.class) + "DWGDrawings/"; | |
String dwgPathToFile = dataDir + "SimpleEntites.dwg"; | |
Image image = Image.load(dwgPathToFile); | |
CadText cadText = new CadText(); | |
cadText.setStyleType("Standard"); | |
cadText.setDefaultValue("Some custom text"); | |
cadText.setColorId(256); | |
cadText.setLayerName("0"); | |
cadText.getFirstAlignment().setX(47.9); | |
cadText.getFirstAlignment().setY(5.56); | |
cadText.setTextHeight(0.8); | |
cadText.setScaleX(0); | |
CadImage cadImage = ((CadImage)(image)); | |
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(cadText); | |
PdfOptions pdfOptions = new PdfOptions(); | |
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions(); | |
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions); | |
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor); | |
cadRasterizationOptions.setPageHeight(1600); | |
cadRasterizationOptions.setPageWidth(1600); | |
cadRasterizationOptions.setLayouts(new String[] {"Model"}); | |
image.save(dataDir+"SimpleEntites_generated.dwg.pdf", pdfOptions); | |
Supporto per Mesh in DWG
Aspose.CAD per Java API può ora accedere alle entità che supportano mesh, che includono i tipi CadPolyFaceMesh e CadPolygonMesh. Il seguente esempio descrive come possiamo accedere ai tipi di mesh.
Convertire Disegni DWG in DXF
Aspose.CAD fornisce la funzionalità di caricare file DWG di AutoCAD ed esportarli in formato DXF. L’approccio di conversione da DWG a DXF funziona come segue:
- Caricare il file di disegno DWG utilizzando il metodo factory Image.load .
- Esportare il disegno DWG in DXF utilizzando il metodo Image.save() .
Il campione di codice seguente mostra come convertire un file DWG in formato DXF.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(DWGToDXF.class) + "DWGDrawings/"; | |
String inputFile = dataDir+ "Line.dwg"; | |
String outFile = dataDir+ "Line.dxf"; | |
CadImage cadImage = (CadImage)Image.load(inputFile); | |
cadImage.save(outFile); |
Convertire Disegni DWG in SVG
Aspose.CAD API può caricare disegni AutoCAD in formato DWG e convertirli in SVG. Questo argomento spiega l’uso dell’API Aspose.CAD per ottenere la conversione da DWG a formato SVG attraverso semplici passaggi come definiti di seguito.
- Caricare il file DWG in un’istanza di Image.
- Creare un oggetto della classe SvgOptions e impostare le proprietà richieste.
- Esportare il disegno DWG in SVG utilizzando il Image.save() metodo.
Il campione di codice seguente mostra come convertire un file DWG in formato SVG.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportToSVG.class) + "DWGDrawings/"; | |
Image image = Image.load(dataDir + "meshes.dwg"); | |
{ | |
SvgOptions options = new SvgOptions(); | |
options.setColorType(SvgColorMode.Grayscale); | |
options.setTextAsShapes(true); | |
image.save(dataDir + "meshes.svg"); | |
} |