Use DocumentBuilder para Inserir Elementos do documento
O DocumentBuilder é utilizado para modificar documentos. Este artigo explica e descreve como executar uma série de Tarefas.
Inserir uma sequência de texto
Basta passar a sequência de texto que você precisa inserir no documento para o método DocumentBuilder.write. A formatação do texto é determinada pela propriedade Font
. Este objeto contém diferentes atributos de fonte (Nome da fonte, tamanho da fonte, cor e assim por diante). Alguns atributos de fonte importantes também são representados por propriedades DocumentBuilder para permitir que você os acesse diretamente. Estas são propriedades booleanas Font.getBold, Font.getItalic e Font.getUnderline.
O exemplo de código a seguir insere texto formatado usando DocumentBuilder.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Font font = builder.getFont(); | |
font.setSize(16); | |
font.setColor(Color.blue); | |
font.setBold(true); | |
font.setName("Algerian"); | |
font.setUnderline(Underline.DOUBLE); | |
builder.write("aspose......... aspose_words_java"); |
Inserir um parágrafo
DocumentBuilder.o writeln também insere uma sequência de texto no documento, mas, além disso, adiciona uma quebra de parágrafo. A formatação da fonte atual também é especificada pelo DocumentBuilder.A propriedade getFont e a formatação do parágrafo atual são determinadas pelo DocumentBuilder.getParagraphFormat propriedade.
O exemplo de código a seguir mostra como inserir um parágrafo no documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Font font = builder.getFont(); | |
font.setSize(16); | |
font.setColor(Color.DARK_GRAY); | |
font.setBold(true); | |
font.setName("Algerian"); | |
font.setUnderline(2); | |
ParagraphFormat paragraphFormat = builder.getParagraphFormat(); | |
paragraphFormat.setFirstLineIndent(12); | |
paragraphFormat.setAlignment(1); | |
paragraphFormat.setKeepTogether(true); | |
builder.write("This is a sample Paragraph"); | |
doc.save(dataDir + "InsertParagraph_out.doc"); |
Inserir uma tabela
O algoritmo básico para criar uma tabela usando DocumentBuilder
é simples:
- Inicie a tabela utilizando DocumentBuilder.startTable.
- Insira uma célula usando DocumentBuilder.insertCell. Isso inicia automaticamente uma nova linha. Se necessário, use a propriedade DocumentBuilder.getCellFormat para especificar a formatação da célula.
- Insira o conteúdo da célula usando os métodos
DocumentBuilder
. - Repita as etapas 2 e 3 até que a linha esteja completa.
- Chame DocumentBuilder.endRow para terminar a linha atual. Se necessário, use a propriedade DocumentBuilder.RowFormat para especificar a formatação da linha.
- Repita os passos 2 - 5 até que a tabela esteja completa.
- Chame DocumentBuilder.endTable para terminar a construção da tabela. Os métodos apropriados de criação de tabelas DocumentBuilder são descritos abaixo.
Iniciar uma mesa
Chamando DocumentBuilder.startTable é o primeiro passo na construção de uma tabela. Também pode ser chamado dentro de uma célula, neste caso, inicia uma tabela aninhada. O próximo método a chamar é DocumentBuilder.insertCell.
Inserir uma célula
Depois de chamar DocumentBuilder.insertCell, uma nova célula é criada e qualquer conteúdo que você adicionar usando outros métodos da classe DocumentBuilder
será adicionado à célula atual. Para iniciar uma nova célula na mesma linha, chame DocumentBuilder.insertCell outra vez. Use o DocumentBuilder.getCellFormat Propriedade para especificar a formatação da célula. Ele retorna um objeto getCellFormat que representa toda a formatação de uma célula da tabela.
Terminar uma linha
Chamada DocumentBuilder.endRow para terminar a linha actual. Se você chamar DocumentBuilder.insertCell imediatamente depois disso, a tabela continua em uma nova linha. Use a propriedade DocumentBuilder.RowFormat
para especificar a formatação da linha. Ele retorna um objeto RowFormat que representa toda a formatação de uma linha de tabela.
Terminar uma mesa
Chamada DocumentBuilder.endTable para terminar a tabela actual. Este método deve ser chamado apenas uma vez após DocumentBuilder.endRow foi chamado. Quando chamado, DocumentBuilder.endTable move o cursor para fora da célula actual para uma posição logo após a tabela. O exemplo a seguir demonstra como construir uma tabela formatada que contém 2 linhas e 2 colunas.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderBuildTable.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Table table = builder.startTable(); | |
builder.insertCell(); | |
table.autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS); | |
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); | |
builder.write("This is Row 1 Cell 1"); | |
builder.insertCell(); | |
builder.write("This is Row 1 Cell 2"); | |
builder.endRow(); | |
builder.getRowFormat().setHeight(100); | |
builder.getRowFormat().setHeightRule(HeightRule.EXACTLY); | |
builder.getCellFormat().setOrientation(TextOrientation.UPWARD); | |
builder.write("This is Row 2 Cell 1"); | |
builder.insertCell(); | |
builder.getCellFormat().setOrientation(TextOrientation.DOWNWARD); | |
builder.write("This is Row 2 Cell 2"); | |
builder.endRow(); | |
builder.endTable(); | |
doc.save(dataDir + "output.doc"); |
Inserir uma pausa
Se pretender iniciar explicitamente uma nova linha, parágrafo, coluna, secção ou página, ligue para DocumentBuilder.insertBreak. Passe para este método o tipo de quebra que você precisa inserir Que é representado pela enumeração BreakType
.
O exemplo de código a seguir mostra como inserir quebras de página em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertBreak.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.write("This is Page 1"); | |
builder.insertBreak(BreakType.PAGE_BREAK); | |
builder.write("This is Page 2"); | |
builder.insertBreak(BreakType.PAGE_BREAK); | |
builder.write("This is Page 3"); | |
doc.save(dataDir + "output.doc"); |
Inserir uma imagem
DocumentBuilder fornece várias sobrecargas do método DocumentBuilder.insertImage que permite inserir uma imagem embutida ou flutuante. Se a imagem for um metarquivo EMF ou WMF, será inserida no documento em formato metarquivo. Todas as outras imagens serão armazenadas no formato PNG. O DocumentBuilder.insertImage método pode usar imagens de diferentes fontes:
- De um arquivo ou
URL
passando um parâmetro de string - De um fluxo passando um parâmetro
Stream
- De um objeto de imagem passando um parâmetro de imagem
- De uma matriz de bytes passando um parâmetro de matriz de bytes
- E outros
Para cada um dos DocumentBuilder.insertImage métodos, existem outras sobrecargas que permitem inserir uma imagem com as seguintes opções:
- Em linha ou flutuante numa posição específica
- Escala percentual ou tamanho personalizado
Além disso, o DocumentBuilder.insertImage método retorna um objeto Shape que acabou de ser criado e inserido para que você possa modificar ainda mais as propriedades da forma.
Inserir uma imagem embutida
Passe uma única string representando um arquivo que contém a imagem para DocumentBuilder.insertImage para inserir a imagem no documento como um gráfico embutido. O exemplo de código a seguir mostra como inserir uma imagem embutida na posição do cursor em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertInlineImage.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertImage(dataDir + "test.jpg"); | |
doc.save(dataDir + "output.doc"); |
Inserir uma imagem flutuante (absolutamente posicionada)
Este exemplo insere uma imagem flutuante de um arquivo ou URL
em uma posição e tamanho especificados.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertFloatingImage.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertImage(dataDir + "test.jpg", | |
RelativeHorizontalPosition.MARGIN, | |
100, | |
RelativeVerticalPosition.MARGIN, | |
100, | |
200, | |
100, | |
WrapType.SQUARE); | |
doc.save(dataDir + "output.doc"); |
Inserir um marcador
Para inserir um marcador no documento, você deve fazer o seguinte:
- Chame DocumentBuilder.startBookmark passando - lhe o nome desejado do marcador.
- Insira o texto do marcador utilizando os métodos
DocumentBuilder
. - Chame DocumentBuilder.endBookmark passando o mesmo nome que você usou com DocumentBuilder.startBookmark.
Os marcadores podem sobrepor-se e abranger qualquer intervalo. Para criar um marcador válido, Você precisa chamar ambos DocumentBuilder.startBookmark e DocumentBuilder.endBookmark com o mesmo nome de marcador.
Marcadores mal formados ou marcadores com nomes duplicados serão ignorados quando o documento for salvo.
O exemplo de código a seguir mostra como inserir um marcador em um documento usando um construtor de documentos.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertBookmark.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.startBookmark("FineBookMark"); | |
builder.write("This is just a fine bookmark."); | |
builder.endBookmark("FineBookmark"); | |
doc.save(dataDir + "output.doc");// |
Inserir um campo
Os Campos dos documentos Microsoft Word consistem num código de campo e num resultado de campo. O código do campo é como uma fórmula e o resultado do campo é o valor que a fórmula produz. O código de campo também pode conter comutadores de campo que são instruções adicionais para executar uma ação específica. Você pode alternar entre a exibição de códigos de campo e resultados em seu documento em Microsoft Word usando o atalho de teclado Alt+F9. Os códigos de campo aparecem entre chaves ({ }
).Use DocumentBuilder.insertField para criar campos no documento. Você precisa especificar um tipo de campo, Código de campo e valor de campo. Se você não tiver certeza sobre a sintaxe do código de campo específico, crie o campo em Microsoft Word Primeiro e alterne para ver seu código de campo.
O exemplo de código a seguir insere um campo de mesclagem em um documento usando DocumentBuilder.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertField.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getFont().setLocaleId(1031); | |
builder.insertField("MERGEFIELD Date1 \\@ \"dddd, d MMMM yyyy\""); | |
builder.write(" - "); | |
builder.insertField("MERGEFIELD Date2 \\@ \"dddd, d MMMM yyyy\""); | |
doc.save(dataDir + "output.doc"); |
Inserir um campo Form
Os campos de formulário são um caso particular de campos de palavras que permitem “interacção” com o utilizador. Os campos de formulário em Microsoft Word incluem textbox, Combobox e checkbox.DocumentBuilder fornece métodos especiais para inserir cada tipo de campo de formulário no documento: DocumentBuilder.insertTextInput, DocumentBuilder.insertCheckBox e DocumentBuilder.insertComboBox. Observe que, se você especificar um nome para o campo do formulário, um marcador será criado automaticamente com o mesmo nome.
Inserir uma entrada de texto
DocumentBuilder.insertTextInput para inserir uma caixa de texto no documento. O exemplo de código a seguir mostra como inserir um campo de formulário de entrada de texto em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertTextInputFormField.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", "Hello", 0); | |
doc.save(dataDir + "output.doc"); |
Inserir um CheckBox
Chamada DocumentBuilder.insertCheckBox para inserir um checkbox no documento. O exemplo de código a seguir mostra como inserir um campo de formulário checkbox em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertCheckBoxFormField.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertCheckBox("CheckBox", true, true, 0); | |
doc.save(dataDir + "output.doc"); |
Inserir uma caixa de combinação
Chamada DocumentBuilder.insertComboBox para inserir uma caixa de combinação no documento. O exemplo de código a seguir mostra como inserir um campo de formulário de caixa de combinação em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertComboBoxFormField.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
String[] items = {"One", "Two", "Three"}; | |
builder.insertComboBox("DropDown", items, 0); | |
doc.save(dataDir + "output.doc"); |
Inserir localidade ao nível do campo
Os clientes podem agora especificar a localidade ao nível do campo e obter um melhor controlo. Os Ids de localidade podem ser associados a cada campo dentro do DocumentBuilder. Os exemplos abaixo ilustram como utilizar esta opção.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
DocumentBuilder builder = new DocumentBuilder(); | |
Field field = builder.insertField(FieldType.FIELD_DATE, true); | |
field.setLocaleId(1049); | |
builder.getDocument().save(getArtifactsDir() + "WorkingWithFields.SpecifylocaleAtFieldlevel.docx"); |
Inserir HTML
Você pode inserir facilmente uma string HTML que contenha um fragmento HTML ou um documento HTML inteiro no documento do Word. Basta passar esta string para o DocumentBuilder.insertHtml Método. Uma das implementações úteis do método é armazenar uma string HTML em um banco de dados e inseri-la no documento durante Mail Merge para obter o conteúdo formatado adicionado em vez de construí-lo usando vários métodos do construtor de documentos. O exemplo de código a seguir mostra inserções HTML em um documento usando DocumentBuilder.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertHtml.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertHtml( | |
"<P align='right'>Paragraph right</P>" + | |
"<b>Implicit paragraph left</b>" + | |
"<div align='center'>Div center</div>" + | |
"<h1 align='left'>Heading 1 left.</h1>"); | |
doc.save(dataDir + "output.doc"); |
Inserir uma hiperligação
Use DocumentBuilder.insertHyperlink para inserir uma hiperligação no documento. Este método Aceita três parâmetros: texto do link a ser exibido no documento, destino do link (URL ou o nome de um marcador dentro do documento) e um parâmetro booleano que deve ser verdadeiro se URL
for o nome de um marcador dentro do documento.DocumentBuilder.insertHyperlink chama internamente DocumentBuilder.insertField. O método sempre adiciona apóstrofos no início e no final do URL. Observe que você precisa especificar a formatação da fonte para o texto de exibição do hiperlink explicitamente usando a propriedade Font
. O exemplo de código a seguir insere um hiperlink em um documento usando DocumentBuilder.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.write("Please make sure to visit "); | |
builder.getFont().setColor(Color.BLUE); | |
builder.getFont().setUnderline(Underline.SINGLE); | |
builder.insertHyperlink("Aspose Website", "http://www.aspose.com", false); | |
builder.getFont().clearFormatting(); | |
builder.write(" for more information."); | |
doc.save(getArtifactsDir() + "AddContentUsingDocumentBuilder.InsertHyperlink.docx"); |
Inserir um índice
Você pode inserir um campo TOC
(índice) no documento na posição atual chamando o método DocumentBuilder.insertTableOfContents. O DocumentBuilder.insertTableOfContents método só irá inserir um campo TOC
no documento. Para construir o índice e exibi-lo de acordo com os números das páginas, o método both Document.UpdateFieldsdeve ser chamado após a inserção do campo. O exemplo de código a seguir mostra como inserir um campo sumário em um documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
String dataDir = Utils.getDataDir(DocumentBuilderInsertTableOfContents.class); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u"); | |
builder.insertBreak(BreakType.PAGE_BREAK); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1); | |
builder.writeln("Heading 1"); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2); | |
builder.writeln("Heading 1.1"); | |
builder.writeln("Heading 1.2"); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1); | |
builder.writeln("Heading 2"); | |
builder.writeln("Heading 3"); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2); | |
builder.writeln("Heading 3.1"); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_3); | |
builder.writeln("Heading 3.1.1"); | |
builder.writeln("Heading 3.1.2"); | |
builder.writeln("Heading 3.1.3"); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2); | |
builder.writeln("Heading 3.2"); | |
builder.writeln("Heading 3.3"); | |
doc.updateFields(); | |
doc.save(dataDir + "output.doc"); |
Inserir Ole Objecto
Se você quiser Ole Chamada de objeto DocumentBuilder.insertOleObjectAsIcon.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertOleObject("http://www.aspose.com", "htmlfile", true, true, null); | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObject.docx"); |
Definir o nome e a extensão do ficheiro ao inserir o objecto Ole
O pacote OLE é uma maneira legada e" não documentada " de armazenar objetos incorporados se o manipulador OLE for desconhecido. As primeiras Windows versões como Windows 3.1, 95 e 98 tinham uma aplicação Packager.exe que podia ser utilizada para incorporar qualquer tipo de dados no documento. Agora, este aplicativo é excluído de Windows mas MS Word e outros aplicativos ainda o usam para incorporar dados se o manipulador OLE estiver ausente ou desconhecido. OlePackage classe permite aceder a OLE Package Propriedades.O exemplo de código a seguir mostra como definir o nome do arquivo, a extensão e o nome de exibição para OLE Package.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
byte[] bs = FileUtils.readFileToByteArray(new File(getMyDir() + "Zip file.zip")); | |
try (ByteArrayInputStream stream = new ByteArrayInputStream(bs)) | |
{ | |
Shape shape = builder.insertOleObject(stream, "Package", true, null); | |
OlePackage olePackage = shape.getOleFormat().getOlePackage(); | |
olePackage.setFileName("filename.zip"); | |
olePackage.setDisplayName("displayname.zip"); | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectWithOlePackage.docx"); | |
} |
Obter acesso aos dados brutos do objecto OLE
O exemplo de código a seguir demonstra como obter dados brutos do objeto OLE usando o método OleFormat.GetRawData
().
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Shape oleShape = (Shape) doc.getChild(NodeType.SHAPE, 0, true); | |
byte[] oleRawData = oleShape.getOleFormat().getRawData(); |
Inserir Regra Horizontal no documento
O exemplo de código a seguir mostra como inserir a forma de regra horizontal em um documento usando o método DocumentBuilder.InsertHorizontalRule
.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Initialize document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.writeln("Insert a horizontal rule shape into the document."); | |
builder.insertHorizontalRule(); | |
dataDir = dataDir + "DocumentBuilder.InsertHorizontalRule_out.doc"; | |
doc.save(dataDir); |
Trabalhar com formas
Inserção de formas Inline e de flutuação livre
Você pode inserir uma forma embutida com um tipo e tamanho especificados e uma forma flutuante com a posição, tamanho e tipo de quebra de texto especificados em um documento usando o método DocumentBuilder.InsertShape
. O método DocumentBuilder.InsertShape
permite inserir a forma DML no modelo do documento. O documento deve ser salvo no formato, que suporta formas DML, caso contrário, esses nós serão convertidos em forma VML, enquanto o documento é salvo. O exemplo de código a seguir mostra como inserir esses tipos de formas no documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
//Free-floating shape insertion. | |
Shape shape = builder.insertShape(ShapeType.TEXT_BOX, | |
RelativeHorizontalPosition.PAGE, 100, | |
RelativeVerticalPosition.PAGE, 100, | |
50, 50, | |
WrapType.NONE); | |
shape.setRotation(30.0); | |
builder.writeln(); | |
//Inline shape insertion. | |
shape = builder.insertShape(ShapeType.TEXT_BOX, 50, 50); | |
shape.setRotation(30.0); | |
OoxmlSaveOptions so = new OoxmlSaveOptions(SaveFormat.DOCX); | |
// "Strict" or "Transitional" compliance allows to save shape as DML. | |
so.setCompliance(OoxmlCompliance.ISO_29500_2008_TRANSITIONAL); | |
dataDir = dataDir + "Shape_InsertShapeUsingDocumentBuilder_out.docx"; | |
// Save the document to disk. | |
doc.save(dataDir, so); |
Criar Retângulo De Canto De Recorte
Você pode criar um retângulo de Canto de recorte usando Aspose.Words. Os tipos de formas são SingleCornerSnipped, TopCornersSnipped, DiagonalCornersSnipped, TopCornersOneRoundedOneSnipped, SingleCornerRounded, TopCornersRounded, e DiagonalCornersRounded. A forma DML é criada usando o método DocumentBuilder.InsertShape
com esses tipos de forma. Esses tipos não podem ser usados para criar formas VML. A tentativa de criar uma forma usando o construtor público da classe" Shape “gera a exceção” NotSupportedException". O exemplo de código a seguir mostra como inserir esses tipos de formas no documento.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.insertShape(ShapeType.TOP_CORNERS_SNIPPED, 50, 50); | |
OoxmlSaveOptions so = new OoxmlSaveOptions(SaveFormat.DOCX); | |
so.setCompliance(OoxmlCompliance.ISO_29500_2008_TRANSITIONAL); | |
dataDir = dataDir + "AddCornersSnipped_out.docx"; | |
//Save the document to disk. | |
doc.save(dataDir, so); |
Importar formas com Matemática XML como formas para DOM
Você pode usar a propriedade LoadOptions.ConvertShapeToOfficeMath
para converter as formas com EquationXML em objetos do Office Math. O valor predefinido desta propriedade corresponde ao comportamento da palavra MS, ou seja, as formas com a equação XML não são convertidas em objectos do Office math.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
LoadOptions lo = new LoadOptions(); | |
lo.setConvertShapeToOfficeMath(true); | |
// Specify load option to use previous default behaviour i.e. convert math | |
// shapes to office math ojects on loading stage. | |
Document doc = new Document(dataDir + "OfficeMath.docx", lo); | |
// Save the document into DOCX | |
doc.save(dataDir + "ConvertShapeToOfficeMath_out.docx", SaveFormat.DOCX); |