Trabalhando com imagens
Aspose.Words permite aos usuários trabalhar com imagens de uma forma muito flexível. Neste artigo você poderá explorar apenas algumas das possibilidades de trabalhar com imagens.
Como inserir uma imagem
DocumentBuilder fornece diversas sobrecargas do método InsertImage que permitem inserir uma imagem embutida ou flutuante. Se a imagem for um metarquivo EMF ou WMF, ela será inserida no documento no formato metarquivo. Todas as outras imagens serão armazenadas no formato PNG. O método InsertImage pode usar imagens de diferentes fontes:
- A partir de um arquivo ou
URL
passando um parâmetroString
InsertImage - De um stream passando um parâmetro
Stream
InsertImage - A partir de um objeto Image passando um parâmetro Image InsertImage
- A partir de uma matriz de bytes, passando um parâmetro de matriz de bytes InsertImage
Para cada um dos métodos InsertImage, existem sobrecargas adicionais que permitem inserir uma imagem com as seguintes opções:
- Inline ou flutuante em uma posição específica, por exemplo, InsertImage
- Escala percentual ou tamanho personalizado, por exemplo, InsertImage; além disso, o método InsertImage retorna um objeto Shape que acabou de ser criado e inserido para que você possa modificar ainda mais as propriedades do Shape
Como inserir uma imagem embutida
Passe uma única string representando um arquivo que contém a imagem para 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:
Como inserir uma imagem flutuante
O exemplo de código a seguir mostra como inserir uma imagem flutuante de um arquivo ou URL
em uma posição e tamanho especificados:
Como extrair imagens de um documento
Todas as imagens são armazenadas dentro de nós Shape em um Document. Para extrair todas as imagens ou imagens de tipo específico do documento, siga estas etapas:
- Use o método GetChildNodes para selecionar todos os nós Shape.
- Iterar pelas coleções de nós resultantes.
- Verifique a propriedade booleana HasImage.
- Extraia dados de imagem usando a propriedade ImageData.
- Salve os dados da imagem em um arquivo.
O exemplo de código a seguir mostra como extrair imagens de um documento e salvá-las como arquivos:
Como inserir código de barras em cada página do documento
Este exemplo demonstra como adicionar códigos de barras iguais ou diferentes em todas ou páginas específicas de um documento do Word. Não existe uma maneira direta de adicionar códigos de barras em todas as páginas de um documento, mas você pode usar os métodos MoveToSection, MoveToHeaderFooter e InsertImage para mover para qualquer seção ou cabeçalhos/rodapés e inserir as imagens de código de barras como você pode ver no código a seguir.
O exemplo de código a seguir mostra como inserir uma imagem de código de barras em cada página de um documento:
Bloquear proporção da imagem
A proporção de uma forma geométrica é a proporção de seus tamanhos em diferentes dimensões. Você pode bloquear a proporção da imagem usando AspectRatioLocked. O valor padrão da proporção da forma depende do ShapeType. É true para ShapeType.Image
e false para outros tipos de formas.
O exemplo de código a seguir mostra como trabalhar com proporção:
Como obter limites reais de forma em pontos
Se desejar que a caixa delimitadora real da forma seja renderizada na página, você pode fazer isso usando a propriedade BoundsInPoints.
O exemplo de código a seguir mostra como usar essa propriedade:
Cortar imagens
O corte de uma imagem geralmente se refere à remoção das partes externas indesejadas de uma imagem para ajudar a melhorar o enquadramento. Também é usado para remover algumas partes de uma imagem para aumentar o foco em uma área específica.
O exemplo de código a seguir mostra como fazer isso usando Aspose.Words API:
Salvar imagens como WMF
Aspose.Words fornece funcionalidade para salvar todas as imagens disponíveis em um documento no formato WMF enquanto converte DOCX em RTF.
O exemplo de código a seguir mostra como salvar imagens como WMF com opções de salvamento RTF: