رسومات DXF
تصدير رسومات DXF إلى PDF
توفر Aspose.CAD ميزة تحميل كائنات رسم DXF من AutoCAD ورسمها كالرسم الكامل بتنسيق PDF. تعمل طريقة تحويل DXF إلى PDF على النحو التالي:
- تحميل ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء كائن من فئة CadRasterizationOptions وضبط خصائص PageHeight وPageWidth.
- إنشاء كائن من فئة PdfOptions وضبط خاصية VectorRasterizationOptions.
- استدعاء Image.Save مع تمرير كائن من PdfOptions كمعامل ثانٍ.
توضح عينة الكود أدناه كيفية تحويل ملف باستخدام الإعدادات الافتراضية.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportDXFDrawingToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = 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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
تنسيقات مدعومة
في الوقت الحالي، ندعم تمامًا تنسيقات ملفات AutoCAD DXF 2010. النسخ السابقة من DXF لا تضمن أن تكون صالحة بنسبة 100%. نحن نخطط لتضمين المزيد من التنسيقات والميزات في الإصدارات المستقبلية من Aspose.CAD.
الكائنات المدعومة
في الوقت الحالي، ندعم جميع الكائنات ثنائية الأبعاد الشائعة والمعلمات الأساسية الافتراضية الخاصة بها كما يلي:
- الأبعاد المتوافقة
- الأبعاد الزاوية
- القوس
- السمة
- مرجع الكائن
- الدائرة
- بعد القطر
- الشكل البيضاوي
- التظليل
- الخط
- النص متعدد الخطوط
- بعد الإحداثيات
- النقطة
- الخط المتعدد
- بعد شعاعي
- الأشعة
- بعد الدوران
- الجدول
- النص
- الخط المستقيم
إدارة الذاكرة
يمكن استخدام خاصية ExactReallocateOnly للتحكم في إعادة تخصيص الذاكرة. من المرجح أن يحدث إعادة التخصيص في ذاكرات التخزين المخصصة مسبقًا. يمكن أن يحدث ذلك عندما يكتشف النظام أن المساحة المخصصة لن تكون كافية.
- إذا كانت ExactReallocateOnly مضبوطًة على القيمة الافتراضية، False، فإن المساحة تُعاد تخصيصها على نفس الوسيط.
- عند ضبطها على True، لا يمكن أن تتجاوز إعادة التخصيص المساحة المحددة القصوى. في هذه الحالة، تتم إزالة الكاش المخصص في الذاكرة الموجودة (التي تتطلب إعادة تخصيص) ويتم تخصيص مساحة ممتدة على القرص.
تصدير طبقة محددة من رسومات DXF إلى PDF
تعمل هذه الطريقة على النحو التالي:
- فتح ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء مثيل من CadRasterizationOptions وتحديد خصائص PageWidth وPageHeight.
- إضافة الطبقات إلى كائن CadRasterizationOptions.
- إنشاء مثيل من PdfOptions وضبط خاصية VectorRasterizationOptions.
- تصدير الرسم إلى PDF باستخدام طريقة Image.save.
توضح عينة الكود أدناه كيفية تحويل طبقة محددة من DXF إلى PDF.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificLayerOfDXFDrawingToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
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); | |
// Add desired layers | |
rasterizationOptions.getLayers().add("0"); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layer_out_.pdf", pdfOptions); |
تصدير طبقة محددة من رسومات DXF إلى صورة
تعمل هذه الطريقة على النحو التالي:
- فتح ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء مثيل من CadRasterizationOptions وتحديد خصائص PageWidth وPageHeight.
- إضافة الطبقات إلى كائن CadRasterizationOptions
- إنشاء مثيل من JpegOptions وضبط خاصية VectorRasterizationOptions.
- تصدير الرسم إلى PDF باستخدام طريقة Image.save .
توضح عينة الكود أدناه كيفية تحويل طبقة محددة من DXF إلى صورة.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings\\"; | |
String srcFile = dataDir + "for_layers_test.dwf"; | |
DwfImage image =(DwfImage)Image.load(srcFile); | |
List<String> layersNames=image.getLayers().getLayersNames(); | |
DwfWhipLayer layer = image.getLayers().getLayerByName("0"); | |
for (DwfWhipLayer lr : image.getLayers()) | |
{ | |
//... | |
} | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
String[] stringArray = Arrays.copyOf(layersNames.toArray(), layersNames.toArray().length, String[].class); | |
List<String> stringList = Arrays.asList(stringArray); | |
// Add desired layers | |
rasterizationOptions.setLayers(stringList); | |
JpegOptions jpegOptions = new JpegOptions(); | |
jpegOptions.setVectorRasterizationOptions(rasterizationOptions); | |
String output = dataDir+"for_layers_test.jpg"; | |
// Export the DXF to Image | |
image.save(output, jpegOptions); | |
عرض ملفات PDF كجزء من رسومات DXF
تعمل هذه الطريقة على النحو التالي:
- تحميل ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء كائن من فئة CadRasterizationOptions ورفع ملفات PDF.
- ضبط خصائص PageHeight وPageWidth.
- استدعاء Image.save وحفظ الملف.
توضح عينة الكود أدناه كيفية عرض ملفات PDF كجزء من رسومات DXF.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = 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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
تصدير DXF إلى WMF
تعمل هذه الطريقة على النحو التالي:
- تحميل ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء كائن من فئة CadRasterizationOptions ورفع ملفات PDF.
- ضبط خصائص PageHeight وPageWidth.
- استدعاء Image.save وحفظ الملف.
توضح عينة الكود أدناه كيفية تصدير DXF إلى WMF.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
IfcImage cadImage = (IfcImage)Image.load((dataDir +"example.ifc")); | |
try | |
{ | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(100); | |
rasterizationOptions.setPageHeight(100); | |
WmfOptions wmfOptions = new WmfOptions(); | |
cadImage.save(dataDir+" example.ifc.wmf", wmfOptions); | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf"); | |
} |
دعم حفظ ملفات DXF
توفر Aspose.CAD ميزة تحميل ملفات DXF من AutoCAD وإجراء تغييرات عليها وحفظها مرة أخرى كملف DXF. توضح عينة الكود أدناه كيفية تحقيق المتطلبات المحددة
String dataDir = Utils.getDataDir(SaveDXFFiles.class) + "CADConversion/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage = (CadImage)Image.load(srcFile); | |
cadImage.save(dataDir+"conic.dxf"); | |
تصدير DGN متضمن تحت لوضع DXF
توفر Aspose.CAD ميزة تحميل ملفات DXF من AutoCAD وتصدير DGN المضمن لوضع DXF.
توضح عينة الكود أدناه كيفية تحقيق المتطلبات المحددة.
String dataDir = Utils.getDataDir(ExportEmbeddedDGN.class) + "ExportingDGN/"; | |
String fileName = dataDir + "BlockRefDgn.dwg"; | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(fileName); | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
objImage.save(dataDir + "BlockRefDgn.pdf", pdfOptions); | |
} |
تصدير تخطيط DXF محدد إلى PDF
تعمل هذه الطريقة على النحو التالي:
- فتح ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء مثيل من CadRasterizationOptions وتحديد خصائص PageWidth وPageHeight.
- تحديد اسم التخطيط المرغوب (الأسماء) باستخدام خاصية CadRasterizationOptions.Layouts.
- إنشاء مثيل من PdfOptions وضبط خاصية VectorRasterizationOptions.
- تصدير الرسم إلى PDF باستخدام الطريقة Image.save .
توضح عينة الكود أدناه كيفية تحويل تخطيط معين من DXF إلى PDF.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
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[] {"Model"}); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layout_out_.pdf", pdfOptions); |
الوصول إلى كائنات ATTRIB و MTEXT
تعمل هذه الطريقة على النحو التالي:
- فتح ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- الوصول إلى الكائنات داخل ملف CAD.
- التحقق من كائنات CadEntityTypeName.MTEXT و CadEntityTypeName.INSERT.
- الإضافة إلى قائمة مؤقتة لمزيد من المعالجة.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
List<CadBaseEntity> mtextList = new ArrayList<CadBaseEntity>(); | |
List<CadBaseEntity> attribList = new ArrayList<CadBaseEntity>(); | |
try | |
{ | |
for (CadBaseEntity entity : cadImage.getEntities()) | |
{ | |
if (entity.getTypeName() == CadEntityTypeName.MTEXT) | |
{ | |
mtextList.add(entity); | |
} | |
if (entity.getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
for (CadBaseEntity childObject : entity.getChildObjects()) | |
{ | |
if (childObject.getTypeName() == CadEntityTypeName.ATTRIB) | |
{ | |
attribList.add(childObject); | |
} | |
} | |
} | |
} | |
System.out.println("MText Size: "+ mtextList.size()); | |
System.out.println("Attribute Size: "+ attribList.size()); | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
تجزئة كائنات إدراج CAD
تعمل هذه الطريقة على النحو التالي:
- فتح ملف DXF باستخدام طريقة Image.load المصنّعة.
- الوصول إلى الكائنات داخل ملف CAD.
- التحقق من كائنات CadEntityTypeName.INSERT.
- التحقق من قائمة نوع CadBlockEntity.
- معالجة الكائنات.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
try | |
{ | |
for (int i=0; i<cadImage.getEntities().length;i++) | |
{ | |
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
CadBlockEntity block = | |
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName()); | |
for (CadBaseEntity blockChild : block.getEntities()) | |
{ | |
// process entities | |
} | |
} | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} |
دعم قص الكتل
توفر Aspose.CAD ميزة قص الكتل. تعمل طريقة قص الكتل على النحو التالي:
- تحميل ملف رسم DXF باستخدام طريقة Image.load المصنّعة.
- إنشاء كائن من فئة CadRasterizationOptions ورفع ملفات PDF.
- ضبط الخصائص المرغوبة لـ CadRasterizationOptions.
- استدعاء Image.save مع تمرير كائن من PdfOptions كمعامل ثانٍ وحفظ الملف.
توضح عينة الكود أدناه كيفية عمل قص الكتل.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/"; | |
String inputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.dxf"; | |
String outputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.pdf"; | |
CadImage cadImage = (CadImage)Image.load(inputFile); | |
Margins margins = new Margins(); | |
margins.setTop(5); | |
margins.setRight(30); | |
margins.setBottom(5); | |
margins.setLeft(30); | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setBackgroundColor(Color.getWhite()); | |
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor); | |
rasterizationOptions.setPageWidth(1200); | |
rasterizationOptions.setPageHeight(1600); | |
rasterizationOptions.setMargins(margins); | |
rasterizationOptions.setLayouts( new String[] { "Model" } ); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
cadImage.save(outputFile, pdfOptions); | |
تصدير الصور إلى DXF
باستخدام Aspose.CAD، يمكنك تصدير الصور إلى تنسيق DXF. باستخدام هذه الطريقة، يمكنك القيام بالإجراءات التالية:
- ضبط خط جديد
- إخفاء الكائنات
- تحديث النص
توضح عينة الكود التالية كيفية تنفيذ الإجراءات المذكورة أعلاه.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/"; | |
File[] files = new File(dataDir).listFiles(); | |
for (File file : files) { | |
String extension = GetFileExtension(file); | |
if(extension == ".dxf"){ | |
// **************************** | |
// Set new font per document | |
// **************************** | |
CadImage cadImage = (CadImage)Image.load(file.getName()); | |
for (Object style : cadImage.getStyles()) { | |
// Set font name | |
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Broadway"); | |
} | |
cadImage.save(file.getName() + "_font.dxf"); | |
// **************************** | |
// Hide all "straight" lines | |
// **************************** | |
CadImage cadImageEntity = (CadImage)Image.load(file.getName()); | |
for (CadBaseEntity entity : cadImageEntity.getEntities()) { | |
// Make lines invisible | |
if ((entity.getTypeName() == CadEntityTypeName.LINE)) { | |
entity.setVisible((short)0); | |
} | |
} | |
cadImageEntity.save(file.getName() + "_lines.dxf"); | |
// **************************** | |
// Manipulations with text | |
// **************************** | |
CadImage cadImageText = (CadImage)Image.load(file.getName()); | |
for (CadBaseEntity entity : cadImageText.getEntities()) { | |
// Make lines invisible | |
if ((entity.getTypeName() == CadEntityTypeName.TEXT)) { | |
((CadText)entity).setDefaultValue("New text here!!! :)"); | |
break; | |
} | |
} | |
cadImageText.save(file.getName() + "_text.dxf"); | |
}//If extension = .dxf | |
} | |
private static String GetFileExtension(File file) { | |
String extension = ""; | |
try { | |
if (file != null && file.exists()) { | |
String name = file.getName(); | |
extension = name.substring(name.lastIndexOf(".")); | |
} | |
} catch (Exception e) { | |
extension = ""; | |
} | |
return extension; | |
} |