DWG Tekeningen
Exporteren van DWG Tekeningen naar PDF
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en deze converteren naar PDF. Dit onderwerp leg uit hoe de Aspose.CAD API kan worden gebruikt om de conversie van DWG naar PDF-indeling te bereiken via eenvoudige stappen zoals hieronder gedefinieerd.
De API ondersteunt de volgende AutoCAD DWG-revisies:
- DWG 2004 versie 16.0 release 18
- DWG 2005 versie 16.1
- DWG 2010 versie 18.0
- DWG 2013 versie 19.0
DWG Bestandsformaat
Een DWG is een binair bestand dat vectorafbeeldingsgegevens en metadata bevat. De vectorafbeeldingsgegevens bieden instructies aan de CAD-toepassing over hoe de DWG moet worden weergegeven; de metadata kan verschillende informatie over het bestand bevatten, inclusief locatie-specifieke gegevens en ook klantgegevens. Open specificaties voor het DWG-bestandsformaat zijn te vinden in deze PDF
DWG Bestanden naar PDF Converteren
De volgende eenvoudige stappen zijn nodig om DWG naar PDF te converteren.
- Laad het DWG-bestand in een instantie van Image.
- Maak een object aan van de CadRasterizationOptions klasse en stel de PageHeight & PageWidth eigenschappen in.
- Maak een object aan van de PdfOptions klasse en stel de VectorRasterizationOptions eigenschap in.
- Roep de Image.save methode aan en geef het object van PdfOptions door als tweede parameter.
Het onderstaande codevoorbeeld laat zien hoe je DWG Tekeningen naar PDF kunt exporteren.
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); |
Een Enkel PDF Maken met Verschillende Lay-outformaten
Aspose.CAD voor Java stelt je in staat om het DWG-bestand te converteren naar een enkele PDF met verschillende lay-outformaten. Deze benadering werkt als volgt:
- Laad een DWG-bestand met behulp van de Aspose.CAD.Image.load fabrieksmethode.
- Maak een instantie van de CadRasterizationOptions klasse en stel de resulterende pagina hoogte en breedte in.
- Voeg vereiste LayoutPageSizes toe voor het CadRasterizationOptions object.
- Maak een instantie van de PdfOptions klasse en stel de VectorRasterizationOptions eigenschap in.
- Exporteer de afbeelding naar PDF met behulp van de Image.save methode.
Het onderstaande codevoorbeeld laat zien hoe een enkele PDF met verschillende lay-outs kan worden gemaakt.
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); | |
Exporteren van DWG naar PDF/A en PDF/E
De volgende eenvoudige stappen zijn nodig om DWG naar PDF te converteren.
- Laad het DWG-bestand in een instantie van Image.
- Maak een object aan van de CadRasterizationOptions klasse en stel de PageHeight & PageWidth eigenschappen in.
- Maak een object aan van de PdfOptions klasse en stel de VectorRasterizationOptions eigenschap in.
- Roep de Image.save methode aan en geef het object van PdfOptions door als tweede parameter.
Het onderstaande codevoorbeeld laat zien hoe je DWG Tekeningen naar PDF kunt exporteren.
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); |
Ondersteunde AutoCAD Primitive
De volgende AutoCAD primitive worden ondersteund.
- 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
Exporteren van Specifieke DWG Lay-out naar PDF
Deze benadering werkt als volgt:
- Laad een DWG-bestand met behulp van de Image.load fabrieksmethode.
- Maak een instantie van de CadRasterizationOptions klasse en stel de resulterende pagina hoogte en breedte in.
- Stel de Layouts eigenschap in voor het CadRasterizationOptions object.
- Maak een instantie van de PdfOptions klasse en stel de VectorRasterizationOptions eigenschap in.
- Exporteer de afbeelding naar PDF met behulp van de Image.save() methode.
Het onderstaande codevoorbeeld laat zien hoe je een specifieke lay-out van DWG naar PDF kunt converteren.
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); |
Exporteren van DWG naar Raster of PDF met Vaste Grootte
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en deze converteren naar PDF of Raster met een vaste grootte.
Het onderstaande codevoorbeeld laat zien hoe je deze functie kunt implementeren.
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; | |
} | |
Ondersteuning voor afgeronde verborgen lijnen bij het exporteren van DWG/DXF naar BMP en PDF
Deze benadering werkt als volgt:
- Laad een DWG-bestand met behulp van de Aspose.CAD.Image.load fabrieksmethode.
- Maak een instantie van de CadRasterizationOptions klasse.
- Maak een instantie van de CadRasterizationOptions klasse en stel de resulterende pagina hoogte en breedte in.
- Maak een instantie van de PdfOptions klasse en stel de VectorRasterizationOptions eigenschap in.
- Exporteer de afbeelding naar PDF met behulp van de Image.save() methode.
Het onderstaande codevoorbeeld laat zien hoe je deze functie kunt implementeren.
Ondersteuning voor het instellen van het afdrukgebied voor DWG-afbeeldingen in geëxporteerde PDF
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en deze converteren naar PDF. Dit onderwerp legt uit hoe de Aspose.CAD API kan worden gebruikt om ondersteuning te bieden voor het instellen van een afdrukgebied voor DWG-afbeeldingen in geëxporteerde PDF.
Het onderstaande codevoorbeeld laat zien hoe je deze functie kunt implementeren.
// 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); | |
} |
Ondersteuning voor het lezen van XREF-metadata voor DWG-bestand
- Laad een DWG-bestand met behulp van de Aspose.CAD.Image.load fabrieksmethode.
- Traverseer door elke afbeeldingsentiteit.
- Als de entiteit CadUnderlay is, dan XREF-entiteit met metadata.
Het onderstaande codevoorbeeld laat zien hoe je deze functie kunt bereiken.
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(); | |
} | |
} | |
} |
DWG-document door coördinaten op te geven
Aspose.CAD voor Java API biedt nu een functie om DWG-documenten te renderen door de coördinaten van de breedte en hoogte van het document op te geven.
Het onderstaande codevoorbeeld laat zien hoe je een DWG-document kunt renderen.
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); | |
De eigenschap CadRasterizationOptions.Layouts is van het type stringarray, zodat je meer dan één lay-out tegelijk kunt opgeven voor mogelijke conversie naar PDF-indeling. Bij het opgeven van meerdere lay-outs voor de CadRasterizationOptions.Layouts eigenschap, zou de resulterende PDF meerdere pagina’s hebben, waarbij elke pagina een individuele AutoCAD-lay-out vertegenwoordigt.
Lijst Alle Lay-outs
Je kunt alle lay-outs die aanwezig zijn in een AutoCAD-tekening opsommen met behulp van de volgende code-voorbeeld.
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()); | |
} | |
Blok Attribuutwaarde Van Externe Referentie Verkrijgen
Aspose.CAD voor Java API stelt je in staat om een externe referentie van een blokattribuut te verkrijgen. Aspose.CAD API exposeert de getXRefPathName() eigenschap om de externe referentie van een blokattribuut in een CadBlockDictionary verzameling te verkrijgen.
Het volgende codevoorbeeld laat zien hoe je een externe referentie van een blokattribuut kunt verkrijgen.
// 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); |
Zoeken naar Tekst in DWG AutoCAD-bestand
Aspose.CAD voor Java API stelt je in staat om tekst te zoeken in een DWG AutoCAD-bestand. Aspose.CAD API exposeert de CadText klasse die tekstentiteiten in het DWG AutoCAD-bestand vertegenwoordigt. De klasse CadMText is ook opgenomen in de Aspose.CAD API omdat sommige andere entiteiten ook tekst kunnen bevatten.
Het onderstaande codevoorbeeld laat zien hoe je tekst in het DWG AutoCAD-bestand kunt zoeken.
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; | |
} | |
} | |
Zoeken naar Tekst in een Specifieke Lay-out
// 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()); | |
} |
Toegang tot Underlay Vlaggen voor DWG-indeling
Aspose.CAD voor Java heeft de underlay-vlaggen voor DWG-indeling geïmplementeerd en stelt ontwikkelaars in staat om toegang te krijgen tot hen. Hieronder volgt de simpele code-demonstratie.
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; | |
} | |
} |
Ondersteuning voor DWG Entiteiten
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en verschillende entiteiten ondersteunen om mee te werken.
Ondersteuning voor MLeader Entiteit
Een DWG is een binair bestand dat vectorafbeeldingsgegevens en metadata bevat. Er zijn verschillende entiteiten in een DWG-bestand. De volgende sectie beschrijft een voorbeeld van het werken met MLeader entiteit binnen het DWG-bestand.
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); | |
Ondersteuning voor het Exporteren van DWG Entiteit naar Afbeelding
Een DWG is een binair bestand dat vectorafbeeldingsgegevens en metadata bevat. Er zijn verschillende entiteiten in een DWG-bestand. De volgende sectie beschrijft een voorbeeld van het exporteren van een bepaalde DWG-entiteit naar de afbeelding.
// 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); |
Ondersteuning voor het Importeren van Afbeeldingen naar DWG-bestand
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en verschillende entiteiten ondersteunen om mee te werken. Een DWG is een binair bestand dat vectorafbeeldingsgegevens en metadata bevat. Er zijn verschillende entiteiten in een DWG-bestand. De volgende sectie beschrijft hoe we afbeeldingen in het DWG-bestand kunnen importeren.
Ondersteuning voor het Toevoegen van tekst in DWG
Aspose.CAD voor Java API kan AutoCAD tekeningen in DWG-indeling laden en verschillende entiteiten ondersteunen om mee te werken. Een DWG is een binair bestand dat vectorafbeeldingsgegevens en metadata bevat. Er zijn verschillende entiteiten in een DWG-bestand. De volgende sectie beschrijft hoe we tekst binnen het DWG-bestand kunnen toevoegen.
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); | |
Ondersteuning voor Mesh in DWG
Aspose.CAD voor Java API kan nu de entiteiten ondersteunen die mesh ondersteunen, waaronder CadPolyFaceMesh en CadPolygonMesh types. Het volgende voorbeeld beschrijft hoe we toegang kunnen krijgen tot de meshtypen.
Converteren van DWG Tekeningen naar DXF
Aspose.CAD biedt de functie om AutoCAD DWG-bestand te laden en deze te exporteren naar DXF-indeling. Het benadering voor DWG naar DXF conversie werkt als volgt:
- Laad het DWG-tekeningbestand met behulp van de Image.load fabrieksmethode.
- Exporteer de DWG-tekening naar DXF met behulp van de Image.save() methode.
Het onderstaande codevoorbeeld laat zien hoe je een DWG-bestand naar DXF-indeling kunt converteren.
// 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); |
Converteren van DWG Tekeningen naar SVG
Aspose.CAD API kan AutoCAD tekeningen in DWG-indeling laden en deze converteren naar SVG. Dit onderwerp legt uit hoe de Aspose.CAD API kan worden gebruikt om de conversie van DWG naar SVG-indeling te bereiken door middel van eenvoudige stappen zoals hieronder gedefinieerd.
- Laad het DWG-bestand in een instantie van Image.
- Maak een object aan van de SvgOptions klasse en stel de vereiste eigenschappen in.
- Exporteer de DWG-tekening naar SVG met behulp van de Image.save() methode.
Het onderstaande codevoorbeeld laat zien hoe je een DWG-bestand naar SVG-indeling kunt converteren.
// 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"); | |
} |