[PPWI20009]PDFライブラリで四角形を描画するときに、サポートされない破線のスタイルがある
対象製品
PlusPak for Windows Forms 8.0J
詳細
GraphicsクラスのDrawRectangleメソッドを使って四角形を描画する時、PenのDashStyleに使用できる線種はDashとCustomのみです。以下の設定は反映されません。
・DashDot
・DashDotDot
・Dot
・Solid
・DashDot
・DashDotDot
・Dot
・Solid
回避方法
DashStyleプロパティをCustomに設定し、DashPatternプロパティで破線のスタイルをカスタマイズします。
[Visual Basic]
Dim strm As System.IO.Stream = System.IO.File.OpenWrite("test.pdf")
Dim doc As GrapeCity.PDF.Document = New GrapeCity.PDF.Document()
Dim page As GrapeCity.PDF.Objects.PageObject = doc.Pages.CreatePage()
Dim g As GrapeCity.PDF.Drawing.Graphics = page.GetGraphics()
' 矩形の描画
Using p As New Pen(Brushes.Blue, 3)
p.DashStyle = System.Drawing.Drawing2D.DashStyle.[Custom]
' DashDotを描画します
p.DashPattern = New Single() {4, 2, 2, 2}
g.DrawRectangle(p, 10, 10, 200, 200)
End Using
GrapeCity.PDF.Writer.Write(doc, strm)
strm.Close()
[C#]
System.IO.Stream strm = (System.IO.Stream)System.IO.File.OpenWrite("test.pdf");
GrapeCity.PDF.Document doc = new GrapeCity.PDF.Document();
GrapeCity.PDF.Objects.PageObject page = doc.Pages.CreatePage();
GrapeCity.PDF.Drawing.Graphics g = page.GetGraphics();
// 矩形の描画
using (Pen p = new Pen(Brushes.Blue, 3))
{
p.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom;
// DashDotを描画します
p.DashPattern = new float[] { 4, 2, 2, 2 };
g.DrawRectangle(p, 10, 10, 200, 200);
}
GrapeCity.PDF.Writer.Write(doc, strm);
strm.Close();
[Visual Basic]
Dim strm As System.IO.Stream = System.IO.File.OpenWrite("test.pdf")
Dim doc As GrapeCity.PDF.Document = New GrapeCity.PDF.Document()
Dim page As GrapeCity.PDF.Objects.PageObject = doc.Pages.CreatePage()
Dim g As GrapeCity.PDF.Drawing.Graphics = page.GetGraphics()
' 矩形の描画
Using p As New Pen(Brushes.Blue, 3)
p.DashStyle = System.Drawing.Drawing2D.DashStyle.[Custom]
' DashDotを描画します
p.DashPattern = New Single() {4, 2, 2, 2}
g.DrawRectangle(p, 10, 10, 200, 200)
End Using
GrapeCity.PDF.Writer.Write(doc, strm)
strm.Close()
[C#]
System.IO.Stream strm = (System.IO.Stream)System.IO.File.OpenWrite("test.pdf");
GrapeCity.PDF.Document doc = new GrapeCity.PDF.Document();
GrapeCity.PDF.Objects.PageObject page = doc.Pages.CreatePage();
GrapeCity.PDF.Drawing.Graphics g = page.GetGraphics();
// 矩形の描画
using (Pen p = new Pen(Brushes.Blue, 3))
{
p.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom;
// DashDotを描画します
p.DashPattern = new float[] { 4, 2, 2, 2 };
g.DrawRectangle(p, 10, 10, 200, 200);
}
GrapeCity.PDF.Writer.Write(doc, strm);
strm.Close();