Trabalhar com Formas em PostScript | .NET
Adicionar Formas no Documento PS
Adicionar Retângulo ao PS
Para adicionar um rectângulo ao PsDocument com a biblioteca Aspose.Page para .NET, devemos seguir os seguintes passos:
- Criar um fluxo de saída para o ficheiro PS resultante.
- Criar o objeto PsSaveOptions com as opções padrão.
- Criar um PsDocument de 1 página com um fluxo de saída já criado e opções de guardar.
- Criar um retângulo System.Drawing.Drawing2D.GraphicsPath a partir do retângulo.
- Definir uma pintura para o estado gráfico atual do PsDocument.
- Preencher o percurso do retângulo.
- Fechar a página.
- Guarde o documento.
Se precisarmos de traçar (contornar) um retângulo, os primeiros 4 e os últimos 2 passos serão os mesmos, mas os pontos 5 e 6 serão:
Defina o traçado para o estado gráfico atual do PsDocument.
Trace (contorne) o percurso do retângulo.
1//Create an output stream for PostScript document
2using (Stream outPsStream = new FileStream(dataDir + "AddRectangle_outPS.ps", FileMode.Create))
3{
4 //Create save options with A4 size
5 PsSaveOptions options = new PsSaveOptions();
6
7 // Create new 1-paged PS Document
8 PsDocument document = new PsDocument(outPsStream, options, false);
9
10 //Create graphics path from the first rectangle
11 GraphicsPath path = new GraphicsPath();
12 path.AddRectangle(new RectangleF(250, 100, 150, 100));
13 //Set paint
14 document.SetPaint(new SolidBrush(Color.Orange));
15 //Fill the rectangle
16 document.Fill(path);
17
18 //Create graphics path from the second rectangle
19 path = new GraphicsPath();
20 path.AddRectangle(new RectangleF(250, 300, 150, 100));
21 //Set stroke
22 document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
23 //Stroke (outline) the rectangle
24 document.Draw(path);
25
26 //Close current page
27 document.ClosePage();
28
29 //Save the document
30 document.Save();
31}
Para Linux, MacOS e outros sistemas operativos não Windows, oferecemos a utilização do nosso pacote NuGet Aspose.Page.Drawing. Utiliza o backend Aspose.Drawing em vez da biblioteca de sistema System.Drawing.
Assim, importe o namespace Aspose.Page.Drawing em vez do System.Drawing. Nos excertos de código acima e seguintes, será utilizado Aspose.Page.Drawing.Rectangle em vez de System.Drawing.Rectangle, Aspose.Page.Drawing.Drawing2D.GraphicsPath em vez de System.Drawing.Drawing2D.GraphicsPath e assim por diante. Os nossos exemplos de código no GitHub contêm todas as substituições necessárias.
Veja como trabalhar com formas em documentos PS em Java.
O resultado da execução deste código é apresentado como
Adicionar Elipse ao PS
Para adicionar uma elipse ao PsDocument, são também necessários 8 passos:
- Crie um fluxo de saída para o ficheiro PS resultante.
- Crie o objeto PsSaveOptions com as opções padrão.
- Crie um PsDocument de 1 página com um fluxo de saída já criado e guarde as opções.
- Crie uma elipse System.Drawing.Drawing2D.GraphicsPath a partir do retângulo.
- Defina a pintura para o estado gráfico atual do PsDocument.
- Preencha o percurso da elipse.
- Feche a página.
- Guarde o documento.
Se precisarmos de traçar (contornar) uma elipse, os primeiros 4 e os últimos 2 passos serão os mesmos, mas os pontos 5 e 6 serão:
Defina o traçado para o estado gráfico atual do PsDocument.
Trace (contorne) o percurso da elipse.
1//Create an output stream for PostScript document
2using (Stream outPsStream = new FileStream(dataDir + "AddEllipse_outPS.ps", FileMode.Create))
3{
4 //Create save options with A4 size
5 PsSaveOptions options = new PsSaveOptions();
6
7 // Create new 1-paged PS Document
8 PsDocument document = new PsDocument(outPsStream, options, false);
9
10 //Create graphics path from the first ellipse
11 GraphicsPath path = new GraphicsPath();
12 path.AddEllipse(new RectangleF(250, 100, 150, 100));
13 //Set paint
14 document.SetPaint(new SolidBrush(Color.Orange));
15 //Fill the ellipse
16 document.Fill(path);
17
18 //Create graphics path from the second ellipse
19 path = new SystemGraphicsPath();
20 path.AddEllipse(new RectangleF(250, 300, 150, 100));
21 //Set stroke
22 document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
23 //Stroke (outline) the ellipse
24 document.Draw(path);
25
26 //Close current page
27 document.ClosePage();
28
29 //Save the document
30 document.Save();
31}
O resultado da execução deste código é apresentado como
Como podemos ver, qualquer forma, fechada ou não, que possa ser colocada em System.Drawing.Drawing2D.GraphicsPath pode ser preenchida ou desenhada por PsDocument. Também pode ser recortada, mas isso será descrito noutro artigo.
Pode descarregar exemplos e ficheiros de dados do GitHub.