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// Add Rectangle to PS document.
 2
 3string outputFileName = "AddRectangle_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the first rectangle
12GraphicsPath path = new GraphicsPath();
13path.AddRectangle(new RectangleF(250, 100, 150, 100));
14//Set paint
15document.SetPaint(new SolidBrush(Color.Orange));
16//Fill the rectangle
17document.Fill(path);
18
19//Create graphics path from the second rectangle
20path = new GraphicsPath();
21path.AddRectangle(new RectangleF(250, 300, 150, 100));
22//Set stroke
23document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
24//Stroke (outline) the rectangle
25document.Draw(path);
26
27//Close current page
28document.ClosePage();
29
30//Save the document
31document.Save();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// Add ellipse to PS document.
 2
 3string outputFileName = "AddEllipse_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the first ellipse
12GraphicsPath path = new GraphicsPath();
13path.AddEllipse(new RectangleF(250, 100, 150, 100));
14//Set paint
15document.SetPaint(new SolidBrush(Color.Orange));
16//Fill the ellipse
17document.Fill(path);
18
19//Create graphics path from the second ellipse
20path = new GraphicsPath();
21path.AddEllipse(new RectangleF(250, 300, 150, 100));
22//Set stroke
23document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
24//Stroke (outline) the ellipse
25document.Draw(path);
26
27//Close current page
28document.ClosePage();
29
30//Save the document
31document.Save();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.