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.

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.

  1. Caricare il file DWG in un’istanza di Image.
  2. Creare un oggetto della classe CadRasterizationOptions e impostare le proprietà PageHeight e PageWidth.
  3. Creare un oggetto della classe PdfOptions e impostare la proprietà VectorRasterizationOptions.
  4. 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:

  1. Caricare un file DWG utilizzando il metodo factory Aspose.CAD.Image.load.
  2. Creare un’istanza della classe CadRasterizationOptions e impostare l’altezza e la larghezza della pagina risultante.
  3. Aggiungere le LayoutPageSizes richieste per l’oggetto CadRasterizationOptions.
  4. Creare un’istanza della classe PdfOptions e impostare la sua proprietà VectorRasterizationOptions.
  5. 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.

  1. Caricare il file DWG in un’istanza di Image.
  2. Creare un oggetto della CadRasterizationOptions e impostare le proprietà PageHeight e PageWidth.
  3. Creare un oggetto della classe PdfOptions e impostare la proprietà VectorRasterizationOptions.
  4. 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:

  1. Caricare un file DWG utilizzando il metodo factory Image.load.
  2. Creare un’istanza della classe CadRasterizationOptions e impostare l’altezza e la larghezza della pagina risultante.
  3. Impostare la proprietà Layouts per l’oggetto CadRasterizationOptions.
  4. Creare un’istanza della classe PdfOptions e impostare la sua proprietà VectorRasterizationOptions.
  5. 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:

  1. Caricare un file DWG utilizzando il Aspose.CAD.Image.load metodo factory.
  2. Creare un’istanza della CadRasterizationOptions classe.
  3. Creare un’istanza della CadRasterizationOptions classe e impostare l’altezza e la larghezza della pagina risultante.
  4. Creare un’istanza della PdfOptions classe e impostare la sua VectorRasterizationOptions proprietà.
  5. Esportare l’immagine in PDF utilizzando il Image.save() metodo.

Il campione di codice seguente mostra come implementare questa funzionalità.

// 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);

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

  1. Caricare un file DWG utilizzando il Aspose.CAD.Image.load metodo factory.
  2. Percorrere ogni entità immagine.
  3. 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:

  1. Caricare il file di disegno DWG utilizzando il metodo factory Image.load .
  2. 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.

  1. Caricare il file DWG in un’istanza di Image.
  2. Creare un oggetto della classe SvgOptions e impostare le proprietà richieste.
  3. 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");
}