Изчертания DWG
Експортиране на изчертания DWG към PDF
Aspose.CAD за Java API може да зарежда изчертания AutoCAD във формат DWG и да ги преобразува към PDF. Тази тема обяснява използването на Aspose.CAD API за постигане на конвертирането на DWG във формат PDF чрез прости стъпки, както е посочено по-долу.
API-то поддържа следните ревизии на AutoCAD DWG:
- DWG 2004 версия 16.0 издание 18
- DWG 2005 версия 16.1
- DWG 2010 версия 18.0
- DWG 2013 версия 19.0
Формат на DWG файл
DWG е бинарен файл, който съдържа векторни данни за изображението и метаданни. Векторните данни за изображението предоставят инструкции на CAD приложението за това как да показва DWG; метаданните могат да съдържат разнообразна информация за файла, включително данни, специфични за местоположението, както и данни за клиенти. Спецификациите за отворения формат на DWG файл могат да бъдат намерени в този PDF
Преобразуване на DWG файлове в PDF
Необходими са следните прости стъпки за конвертиране на DWG в PDF.
- Заредете DWG файла в инстанция на Image.
- Създайте обект на класа CadRasterizationOptions и задайте свойствата PageHeight и PageWidth.
- Създайте обект на класа PdfOptions и задайте свойството VectorRasterizationOptions.
- Извикайте метода 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 с различни размери на макетите. Този подход работи по следния начин:
- Заредете DWG файла, използвайки фабричния метод Aspose.CAD.Image.load.
- Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
- Добавете необходимите LayoutPageSizes за обекта на CadRasterizationOptions.
- Създайте инстанция на класа PdfOptions и задайте свойството му VectorRasterizationOptions.
- Експортирайте изображението в 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.
- Заредете DWG файла в инстанция на Image.
- Създайте обект на класа CadRasterizationOptions и задайте свойствата PageHeight и PageWidth.
- Създайте обект на класа PdfOptions и задайте свойството VectorRasterizationOptions.
- Извикайте метода 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
Този подход работи по следния начин:
- Заредете DWG файла, използвайки фабричния метод Image.load.
- Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
- Задайте свойството Layouts за обекта на CadRasterizationOptions.
- Създайте инстанция на класа PdfOptions и задайте свойството му VectorRasterizationOptions.
- Експортирайте изображението към 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
Този подход работи по следния начин:
- Заредете DWG файла, използвайки метода Aspose.CAD.Image.load.
- Създайте инстанция на класа CadRasterizationOptions.
- Създайте инстанция на класа CadRasterizationOptions и задайте резултатната височина и ширина на страницата.
- Създайте инстанция на класа PdfOptions и задайте неговото свойство VectorRasterizationOptions.
- Изведете изображението към PDF, използвайки метода Image.save().
Подолу е показан образец на код за прилагане на тази функционалност.
Поддръжка за задаване на района за печат на изображение 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 файл
- Заредете DWG файла, използвайки метода Aspose.CAD.Image.load.
- Обходете всеки изображен обект.
- Ако обектът е 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 м