Rysunki DWG

Eksportowanie rysunków DWG do PDF

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i konwertować je na PDF. Ten temat wyjaśnia użycie API Aspose.CAD do osiągnięcia konwersji z DWG na format PDF poprzez proste kroki opisane poniżej.

Format pliku DWG

DWG to plik binarny, który zawiera dane wektorowe obrazu oraz metadane. Dane wektorowe obrazu dostarczają aplikacji CAD instrukcje dotyczące wyświetlania DWG; metadane mogą zawierać różnorodne informacje o pliku, w tym dane specyficzne dla lokalizacji oraz dane klienta. Otwarte specyfikacje dotyczące formatu pliku DWG można znaleźć w tym PDF

Konwersja plików DWG do PDF

Aby przekonwertować DWG na PDF, wymagane są następujące proste kroki.

  1. Załaduj plik DWG do instancji Image.
  2. Utwórz obiekt klasy CadRasterizationOptions i ustaw właściwości PageHeight oraz PageWidth.
  3. Utwórz obiekt klasy PdfOptions i ustaw właściwość VectorRasterizationOptions.
  4. Wywołaj metodę Image.save i przekaż obiekt PdfOptions jako drugi параметr.

Przykład kodu poniżej pokazuje, jak eksportować rysunki DWG do PDF.

String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setBackgroundColor(Color.getWhite());
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
objImage.save(dataDir + "Bottom_plate_out_.pdf", pdfOptions);

Tworzenie pojedynczego PDF z różnymi rozmiarami układu

Aspose.CAD dla Java pozwala na konwersję pliku DWG na pojedynczy PDF z różnymi rozmiarami układu. To podejście działa w następujący sposób:

  1. Załaduj plik DWG używając fabrycznej metody Aspose.CAD.Image.load.
  2. Utwórz instancję klasy CadRasterizationOptions i ustaw wysokość oraz szerokość wynikowej strony.
  3. Dodaj wymagane LayoutPageSizes do obiektu CadRasterizationOptions.
  4. Utwórz instancję klasy PdfOptions i ustaw właściwość VectorRasterizationOptions.
  5. Eksportuj obraz do PDF używając metody Image.save .

Przykład kodu poniżej pokazuje, jak stworzyć pojedynczy PDF z różnymi układami.

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

Eksportowanie DWG do PDF/A i PDF/E

Aby przekonwertować DWG na PDF, wymagane są następujące proste kroki.

  1. Załaduj plik DWG do instancji Image.
  2. Utwórz obiekt klasy CadRasterizationOptions i ustaw właściwości: PageHeight i PageWidth.
  3. Utwórz obiekt klasy PdfOptions i ustaw właściwość VectorRasterizationOptions.
  4. Wywołaj metodę Image.save i przekaż obiekt PdfOptions jako drugi parametr.

Przykład kodu poniżej pokazuje, jak eksportować rysunki DWG do PDF.

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

Obsługiwane prymitywy AutoCAD

Następujące prymitywy AutoCAD są obsługiwane.

  • 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

Eksportowanie konkretnego układu DWG do PDF

To podejście działa w następujący sposób:

  1. Załaduj plik DWG używając fabrycznej metody Image.load.
  2. Utwórz instancję klasy CadRasterizationOptions i ustaw wysokość oraz szerokość wynikowej strony.
  3. Ustaw właściwość Layouts dla obiektu CadRasterizationOptions.
  4. Utwórz instancję klasy PdfOptions i ustaw jej właściwość VectorRasterizationOptions.
  5. Eksportuj obraz do PDF używając metody Image.save() .

Przykład kodu poniżej pokazuje, jak przekonwertować konkretny układ DWG na 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);

Eksportowanie DWG do Raster lub PDF przy użyciu stałego rozmiaru

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i konwertować je na PDF lub Raster przy użyciu stałego rozmiaru.

Przykład kodu poniżej pokazuje, jak zaimplementować tę funkcję.

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;
}

Wsparcie dla zaokrąglonych linii ukrytych podczas eksportowania DWG/DXF do BMP i PDF

To podejście działa w następujący sposób:

  1. Załaduj plik DWG używając fabrycznej metody Aspose.CAD.Image.load.
  2. Utwórz instancję klasy CadRasterizationOptions.
  3. Utwórz instancję klasy CadRasterizationOptions i ustaw wysokość oraz szerokość wynikowej strony.
  4. Utwórz instancję klasy PdfOptions i ustaw jej właściwość VectorRasterizationOptions.
  5. Eksportuj obraz do PDF używając metody Image.save() .

Przykład kodu poniżej pokazuje, jak zaimplementować tę funkcję.

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

Wsparcie dla ustawiania obszaru wydruku dla obrazu DWG w wyeksportowanym PDF

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i konwertować je na PDF. Ten temat wyjaśnia użycie API Aspose.CAD do uzyskania wsparcia dla ustawienia obszaru wydruku dla obrazu DWG w wyeksportowanym PDF.

Przykład kodu poniżej pokazuje, jak zaimplementować tę funkcję.

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

Wsparcie dla odczytywania metadanych XREF dla pliku DWG

  1. Załaduj plik DWG używając fabrycznej metody Aspose.CAD.Image.load.
  2. Przeglądaj każdą jednostkę obrazu.
  3. Jeśli jednostka to CadUnderlay, to jednostka XREF z metadanymi.

Przykład kodu poniżej pokazuje, jak osiągnąć tę funkcję.

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

Dokument DWG poprzez określenie współrzędnych

Aspose.CAD dla Java API teraz udostępnia funkcję renderowania dokumentów DWG poprzez podanie współrzędnych szerokości i wysokości dokumentu.

Przykład kodu poniżej pokazuje, jak renderować dokument DWG.

String srcFile = dataDir + "visualization_-_conference_room.dwg";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Layout1"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);

Właściwość CadRasterizationOptions.Layouts jest typu tablica stringów, więc możesz ustawić więcej niż jeden układ na raz do możliwej konwersji na format PDF. Podczas określania wielu układów dla właściwości CadRasterizationOptions.Layouts, wyjściowy PDF będzie mieć wiele stron, gdzie każda strona przedstawia indywidualny układ AutoCAD.

Wylistuj wszystkie układy

Możesz wylistować wszystkie układy obecne w rysunku AutoCAD, używając następującego fragmentu kodu.

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());
}

Pobierz wartość atrybutu bloku z odniesienia zewnętrznego

Aspose.CAD dla Java API pozwala na pobieranie odniesienia zewnętrznego atrybutu bloku. API Aspose.CAD udostępnia właściwość getXRefPathName() do uzyskania odniesienia zewnętrznego atrybutu bloku w kolekcji CadBlockDictionary.

Następujący kod demonstruje, jak uzyskać odniesienie zewnętrzne atrybutu bloku.

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

Wyszukiwanie tekstu w pliku DWG AutoCAD

Aspose.CAD dla Java API pozwala na wyszukiwanie tekstu w pliku DWG AutoCAD. API Aspose.CAD udostępnia klasę CadText, która reprezentuje encje tekstowe w pliku DWG AutoCAD. Klasa CadMText jest również zawarta w API Aspose.CAD, ponieważ niektóre inne encje mogą również zawierać tekst.

Następujący kod demonstruje, jak wyszukiwać tekst w pliku 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;
}
}

Wyszukiwanie tekstu w konkretnym układzie

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

Dostęp do flag podkładu dla formatu DWG

Aspose.CAD dla Java wdrożył flagi podkładu dla formatu DWG i pozwala programistom na dostęp do nich. Oto prosty przykład kodu.

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;
}
}

Wsparcie dla encji DWG

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i wspiera różne encje do pracy z nimi.

Wsparcie dla encji MLeader

DWG to plik binarny, który zawiera dane wektorowe obrazu i metadane. W pliku DWG istnieją różne encje. W tej sekcji opisano przykład pracy z encją MLeader wewnątrz pliku 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);

Wsparcie dla eksportowania encji DWG do obrazu

DWG to plik binarny, który zawiera dane wektorowe obrazu i metadane. W pliku DWG istnieją różne encje. W tej sekcji opisano przykład eksportowania konkretnej encji DWG do obrazu.

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

Wsparcie dla importu obrazu do pliku DWG

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i wspiera różne encje do pracy z nimi. DWG to plik binarny, który zawiera dane wektorowe obrazu i metadane. W pliku DWG istnieją różne encje. W tej sekcji opisano, jak możemy importować obrazy do pliku DWG.

Wsparcie dla dodawania tekstu w DWG

Aspose.CAD dla Java API może ładować rysunki AutoCAD w formacie DWG i wspiera różne encje do pracy z nimi. DWG to plik binarny, który zawiera dane wektorowe obrazu i metadane. W pliku DWG istnieją różne encje. W tej sekcji opisano, jak możemy dodać tekst do pliku 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);

Wsparcie dla siatki w DWG

Aspose.CAD dla Java API teraz ma dostęp do encji wspierających siatkę, które obejmują typy CadPolyFaceMesh i CadPolygonMesh. Następujący przykład opisuje, jak możemy uzyskać dostęp do typów siatek.

Konwersja rysunków DWG do DXF

Aspose.CAD zapewnia funkcję ładowania pliku DWG AutoCAD i eksportowania go do formatu DXF. Podejście konwersji DWG na DXF działa w następujący sposób:

  1. Załaduj plik rysunku DWG używając fabrycznej metody Image.load.
  2. Wyeksportuj rysunek DWG do DXF używając metody Image.save().

Przykład kodu poniżej pokazuje, jak przekształcić plik DWG na format 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);

Konwersja rysunków DWG do SVG

API Aspose.CAD może ładować rysunki AutoCAD w formacie DWG i konwertować je na SVG. Ten temat wyjaśnia użycie API Aspose.CAD do przeprowadzenia konwersji z DWG na format SVG poprzez proste kroki opisane poniżej.

  1. Załaduj plik DWG do instancji Image.
  2. Utwórz obiekt klasy SvgOptions i ustaw wymagane właściwości.
  3. Wyeksportuj rysunek DWG do SVG używając metody Image.save() .

Przykład kodu poniżej pokazuje, jak przekonwertować plik DWG na format 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");
}