Desenhos DWG
Exportando Desenhos DWG para PDF
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e convertê-los para PDF. Este tópico explica o uso da API Aspose.CAD para realizar a conversão de DWG para PDF através de etapas simples conforme definido a seguir.
A API suporta as seguintes revisões do AutoCAD DWG:
- Versão DWG 2004 versão 16.0 lançamento 18
- Versão DWG 2005 versão 16.1
- Versão DWG 2010 versão 18.0
- Versão DWG 2013 versão 19.0
Formato de Arquivo DWG
Um DWG é um arquivo binário que contém dados de imagem vetorial e metadados. Os dados de imagem vetorial fornecem instruções à aplicação CAD sobre como exibir o DWG; os metadados podem conter uma variedade de informações sobre o arquivo, incluindo dados específicos de localização e também dados do cliente. Especificações abertas para o formato de arquivo DWG podem ser encontradas neste PDF
Converter Arquivos DWG para PDF
As seguintes etapas simples são necessárias para converter DWG em PDF.
- Carregue o arquivo DWG em uma instância de Image.
- Crie um objeto da classe CadRasterizationOptions e defina as propriedades PageHeight & PageWidth.
- Crie um objeto da classe PdfOptions e defina a propriedade VectorRasterizationOptions.
- Chame o método Image.save e passe o objeto de PdfOptions como o segundo parâmetro.
O trecho de código abaixo mostra como exportar desenhos DWG para 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); |
Criar um PDF Único com Diferentes Tamanhos de Layout
Aspose.CAD para Java permite converter o arquivo DWG em um único PDF com diferentes tamanhos de layout. Essa abordagem funciona da seguinte forma:
- Carregue um arquivo DWG usando o método de fábrica Aspose.CAD.Image.load.
- Crie uma instância da classe CadRasterizationOptions e defina a altura e largura da página resultante.
- Adicione os LayoutPageSizes necessários para o objeto CadRasterizationOptions.
- Crie uma instância da classe PdfOptions e defina sua propriedade VectorRasterizationOptions.
- Exporte a imagem para PDF usando o método Image.save.
O trecho de código abaixo mostra como criar um PDF único com diferentes layouts.
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); | |
Exportando DWG para PDF/A e PDF/E
As seguintes etapas simples são necessárias para converter DWG em PDF.
- Carregue o arquivo DWG em uma instância de Image.
- Crie um objeto da classe CadRasterizationOptions e defina as propriedades PageHeight & PageWidth.
- Crie um objeto da classe PdfOptions e defina a propriedade VectorRasterizationOptions.
- Chame o método Image.save e passe o objeto de PdfOptions como o segundo parâmetro.
O trecho de código abaixo mostra como exportar desenhos DWG para 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); |
Primitivas AutoCAD Suportadas
As seguintes primitivas AutoCAD são suportadas.
- TEXTO
- MTEXT
- ATTDEF
- ATTRIB
- ARCO
- ELIPSE
- HACHURA
- LIDER
- PONTO
- VERTICE 2D
- VERTICE 3D
- POLILINHA 2D
- LWPOLYLINE
- RAIO
- CÍRCULO
- DIMENSÃO ORDENADA
- DIMENSÃO LINEAR
- DIMENSÃO ALINHADA
- DIMENSÃO ÂNGULO 3Pt
- DIMENSÃO ÂNGULO 2Ln
- DIMENSÃO RAIO
- DIMENSÃO DIÂMETRO
- FORMA
- SÓLIDO
- SPLINE
- MLINE
- LINHA
- XLINE
- ESTILO
- DIMSTYLE
- LTYPE
- MLINESTYLE
- CAMADA
- VIEWPORT
- LAYOUT
Exportando um Layout DWG Específico para PDF
Essa abordagem funciona da seguinte forma:
- Carregue um arquivo DWG usando o método de fábrica Image.load.
- Crie uma instância da classe CadRasterizationOptions e defina a altura e largura da página resultante.
- Defina a propriedade Layouts para o objeto CadRasterizationOptions.
- Crie uma instância da classe PdfOptions e defina sua propriedade VectorRasterizationOptions.
- Exporte a imagem para PDF usando o método Image.save().
O trecho de código abaixo mostra como converter um layout específico de DWG para 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); |
Exportando DWG para Raster ou PDF Usando Tamanho Fixo
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e convertê-los em PDF ou Raster usando um tamanho fixo.
O trecho de código abaixo mostra como implementar esse recurso.
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; | |
} | |
Suporte para Linhas Ocultas Arredondadas ao Exportar DWG/DXF para BMP e PDF
Essa abordagem funciona da seguinte forma:
- Carregue um arquivo DWG usando o método Aspose.CAD.Image.load de fábrica.
- Crie uma instância da classe CadRasterizationOptions.
- Crie uma instância da classe CadRasterizationOptions e defina a altura e largura da página resultante.
- Crie uma instância da classe PdfOptions e defina sua propriedade VectorRasterizationOptions.
- Exporte a imagem para PDF usando o método Image.save().
O trecho de código abaixo mostra como implementar esse recurso.
Suporte para Definir Área de Impressão para Imagem DWG no PDF Exportado
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e convertê-los para PDF. Este tópico explica o uso da API Aspose.CAD para alcançar o suporte para definir uma área de impressão para a imagem DWG no PDF exportado.
O trecho de código abaixo mostra como implementar esse recurso.
// 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); | |
} |
Suporte para Ler Metadados XREF para o Arquivo DWG
- Carregue um arquivo DWG usando o método Aspose.CAD.Image.load de fábrica.
- Percorra cada entidade de imagem.
- Se a entidade for CadUnderlay então a entidade XREF com metadados.
O trecho de código abaixo mostra como alcançar esse recurso.
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(); | |
} | |
} | |
} |
Documento DWG Especificando Coordenadas
Aspose.CAD para Java API agora fornece um recurso para renderizar documentos DWG fornecendo coordenadas da largura e altura do documento.
O trecho de código abaixo mostra como renderizar um documento 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); | |
A propriedade CadRasterizationOptions.Layouts é de tipo array de string, portanto, você pode especificar mais de um layout ao mesmo tempo para possível conversão para o formato PDF. Ao especificar vários layouts para a propriedade CadRasterizationOptions.Layouts, o PDF resultante terá várias páginas, onde cada página representa um layout individual do AutoCAD.
Listar Todos os Layouts
Você pode listar todos os layouts presentes em um desenho do AutoCAD usando o seguinte trecho de código.
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()); | |
} | |
Obter Valor de Atributo de Bloco de Referência Externa
Aspose.CAD para Java API permite obter uma referência externa de um atributo de bloco. A API Aspose.CAD expõe a propriedade getXRefPathName() para obter a referência externa de um atributo de bloco em uma coleção CadBlockDictionary.
O seguinte código demonstra como obter uma referência externa de um atributo de bloco.
// 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); |
Pesquisar Texto em Arquivo DWG AutoCAD
Aspose.CAD para Java API permite pesquisar texto em um arquivo DWG AutoCAD. A API Aspose.CAD expõe a classe CadText que representa entidades de texto no arquivo DWG AutoCAD. A classe CadMText também está incluída na API Aspose.CAD, pois algumas outras entidades podem também conter texto.
O trecho de código a seguir demonstra como pesquisar texto no arquivo 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; | |
} | |
} | |
Pesquisar Texto em Layout Específico
// 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()); | |
} |
Acessando Flags de Subjacência para o Formato DWG
Aspose.CAD para Java implementou as flags de subjacência para o formato DWG e permite que os desenvolvedores acessem elas. Abaixo está a demonstração do código simples.
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; | |
} | |
} |
Suporte para Entidades DWG
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e suportar diferentes entidades para trabalhar.
Suporte para Entidade MLeader
Um DWG é um arquivo binário que contém dados de imagem vetorial e metadados. Existem diferentes entidades em um arquivo DWG. A seção a seguir descreve um exemplo de como trabalhar com a entidade MLeader dentro do arquivo 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); | |
Suporte para Exportar Entidade DWG para Imagem
Um DWG é um arquivo binário que contém dados de imagem vetorial e metadados. Existem diferentes entidades em um arquivo DWG. A seção a seguir descreve um exemplo de como exportar uma entidade DWG específica para a imagem.
// 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); |
Suporte para Importar Imagem para o Arquivo DWG
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e suportar diferentes entidades para trabalhar. Um DWG é um arquivo binário que contém dados de imagem vetorial e metadados. Existem diferentes entidades em um arquivo DWG. A seção a seguir descreve como podemos importar imagens dentro do arquivo DWG.
Suporte para Adicionar Texto em DWG
Aspose.CAD para Java API pode carregar desenhos do AutoCAD no formato DWG e suportar diferentes entidades para trabalhar. Um DWG é um arquivo binário que contém dados de imagem vetorial e metadados. Existem diferentes entidades em um arquivo DWG. A seção a seguir descreve como podemos adicionar texto dentro do arquivo 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); | |
Suporte para Malha em DWG
Aspose.CAD para Java API agora pode acessar as entidades que suportam malha, que incluem os tipos CadPolyFaceMesh e CadPolygonMesh. O exemplo a seguir descreve como acessar os tipos de malha.
Converter Desenhos DWG para DXF
Aspose.CAD fornece o recurso para carregar um arquivo DWG do AutoCAD e exportá-lo para o formato DXF. A abordagem de conversão de DWG para DXF funciona da seguinte forma:
- Carregue o arquivo de desenho DWG usando o método Image.load de fábrica.
- Exporte o desenho DWG para DXF usando o método Image.save() .
O trecho de código abaixo mostra como converter um arquivo DWG para o formato 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); |
Converter Desenhos DWG para SVG
Aspose.CAD API pode carregar desenhos do AutoCAD no formato DWG e convertê-los em SVG. Este tópico explica o uso da API Aspose.CAD para alcançar a conversão de DWG para formato SVG através de etapas simples como definido abaixo.
- Carregue o arquivo DWG em uma instância de Image.
- Crie um objeto da classe SvgOptions e defina as propriedades necessárias.
- Exporte o desenho DWG para SVG usando o método Image.save() .
O trecho de código abaixo mostra como converter um arquivo DWG para o formato 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"); | |
} |