Изчертания DWG

Експортиране на изчертания DWG към PDF

Aspose.CAD за Java API може да зарежда изчертания AutoCAD във формат DWG и да ги преобразува към PDF. Тази тема обяснява използването на Aspose.CAD API за постигане на конвертирането на DWG във формат PDF чрез прости стъпки, както е посочено по-долу.

Формат на DWG файл

DWG е бинарен файл, който съдържа векторни данни за изображението и метаданни. Векторните данни за изображението предоставят инструкции на CAD приложението за това как да показва DWG; метаданните могат да съдържат разнообразна информация за файла, включително данни, специфични за местоположението, както и данни за клиенти. Спецификациите за отворения формат на DWG файл могат да бъдат намерени в този PDF

Преобразуване на DWG файлове в PDF

Необходими са следните прости стъпки за конвертиране на DWG в PDF.

  1. Заредете DWG файла в инстанция на Image.
  2. Създайте обект на класа CadRasterizationOptions и задайте свойствата PageHeight и PageWidth.
  3. Създайте обект на класа PdfOptions и задайте свойството VectorRasterizationOptions.
  4. Извикайте метода Image.save и подайте обекта на PdfOptions като втори параметър.

Подолу е показан образец на код за експортиране на изчертания DWG към 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);

Създаване на едно PDF с различни размери на макетите

Aspose.CAD за Java ви позволява да конвертирате DWG файла в едно PDF с различни размери на макетите. Този подход работи по следния начин:

  1. Заредете DWG файла, използвайки фабричния метод Aspose.CAD.Image.load.
  2. Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
  3. Добавете необходимите LayoutPageSizes за обекта на CadRasterizationOptions.
  4. Създайте инстанция на класа PdfOptions и задайте свойството му VectorRasterizationOptions.
  5. Експортирайте изображението в PDF използвайки метода Image.save().

Подолу е показан образец на код за създаване на едно PDF с различни макети.

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

Експортиране от DWG към PDF/A и PDF/E

Необходими са следните прости стъпки за конвертиране на DWG в PDF.

  1. Заредете DWG файла в инстанция на Image.
  2. Създайте обект на класа CadRasterizationOptions и задайте свойствата PageHeight и PageWidth.
  3. Създайте обект на класа PdfOptions и задайте свойството VectorRasterizationOptions.
  4. Извикайте метода Image.save() и подайте обекта на PdfOptions като втори параметър.

Подолу е показан образец на код за експортиране на изчертания DWG към 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);

Поддържани AutoCAD основни фигури

Следните AutoCAD основни фигури се поддържат.

  • 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

Експортиране на конкретен макет DWG към PDF

Този подход работи по следния начин:

  1. Заредете DWG файла, използвайки фабричния метод Image.load.
  2. Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
  3. Задайте свойството Layouts за обекта на CadRasterizationOptions.
  4. Създайте инстанция на класа PdfOptions и задайте свойството му VectorRasterizationOptions.
  5. Експортирайте изображението към PDF, използвайки метода Image.save().

Подолу е показан образец на код за конвертиране на конкретен макет на DWG в 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);

Експортиране на DWG в Растер или PDF с фиксиран размер

Aspose.CAD за Java API може да зарежда изчертания AutoCAD във формат DWG и да ги преобразува в PDF или Растер с фиксиран размер.

Подолу е показан образец на код за прилагане на тази функционалност.

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

Поддръжка за закръглени скрити линии при експортиране на DWG/DXF в BMP и PDF

Този подход работи по следния начин:

  1. Заредете DWG файла, използвайки метода Aspose.CAD.Image.load.
  2. Създайте инстанция на класа CadRasterizationOptions.
  3. Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
  4. Създайте инстанция на класа PdfOptions и задайте неговото свойство VectorRasterizationOptions.
  5. Изведете изображението към PDF, използвайки метода Image.save().

Подолу е показан образец на код за прилагане на тази функционалност.

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

Поддръжка за задаване на района за печат на изображение DWG в експортиран PDF

Aspose.CAD за Java API може да зарежда изчертания AutoCAD във формат DWG и да ги преобразува в PDF. Тази тема обяснява използването на Aspose.CAD API за постигане на поддръжка за задаване на района за печат на изображение DWG в експортиран PDF.

Подолу е показан образец на код за прилагане на тази функционалност.

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

Поддръжка за четене на метаданни за XREF за DWG файл

  1. Заредете DWG файла, използвайки метода Aspose.CAD.Image.load.
  2. Обходете всеки изображен обект.
  3. Ако обектът е CadUnderlay, тогава XREF обект с метаданни.

Подолу е показан образец на код за постигане на тази функционалност.

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, като се посочат координати

Aspose.CAD за Java API вече предоставя функционалност за изписване на документи DWG, като се предоставят координати за ширината и височината на документа.

Подолу е показан образец на код за изобразяване на документ 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);

Свойството CadRasterizationOptions.Layouts е от тип масив от низове, така че можете да посочвате повече от един макет едновременно за възможно конвертиране в PDF формат. Докато посочвате множество макети за свойството CadRasterizationOptions.Layouts, резултатният PDF ще има множество страници, където всяка страница представлява отделен AutoCAD м