fortplot_pdf_drawing Module

PDF-specific drawing utility functions

This module provides PDF vector graphics drawing primitives including markers, shapes, and specialized vector operations.

Author: fortplot contributors



Derived Types

type, public, extends(vector_stream_writer) ::  pdf_stream_writer

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: content_stream
type(vector_graphics_state), public :: current_state

Type-Bound Procedures

procedure, public :: initialize_stream => initialize_vector_stream
procedure, public :: add_to_stream => add_to_vector_stream
procedure, public :: draw_vector_line => draw_generic_vector_line
procedure, public :: set_vector_color => set_generic_vector_color
procedure, public :: set_vector_line_width => set_generic_vector_line_width
procedure, public :: write_command => pdf_write_command
procedure, public :: write_move => pdf_write_move
procedure, public :: write_line => pdf_write_line
procedure, public :: write_stroke => pdf_write_stroke
procedure, public :: write_color => pdf_write_color
procedure, public :: write_line_width => pdf_write_line_width
procedure, public :: save_state => pdf_save_state
procedure, public :: restore_state => pdf_restore_state

Subroutines

public subroutine draw_pdf_circle_with_outline(this, cx, cy, radius)

Draw filled circle with outline in PDF

Arguments

Type IntentOptional Attributes Name
class(pdf_stream_writer), intent(inout) :: this
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: radius

public subroutine draw_pdf_square_with_outline(this, cx, cy, size)

Draw filled square with outline in PDF

Arguments

Type IntentOptional Attributes Name
class(pdf_stream_writer), intent(inout) :: this
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size

public subroutine draw_pdf_diamond_with_outline(this, cx, cy, size)

Draw filled diamond with outline in PDF

Arguments

Type IntentOptional Attributes Name
class(pdf_stream_writer), intent(inout) :: this
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size

public subroutine draw_pdf_x_marker(this, cx, cy, size)

Draw X-shaped marker in PDF

Arguments

Type IntentOptional Attributes Name
class(pdf_stream_writer), intent(inout) :: this
real(kind=wp), intent(in) :: cx
real(kind=wp), intent(in) :: cy
real(kind=wp), intent(in) :: size

public subroutine draw_pdf_arrow(this, x, y, dx, dy, size, style)

Draw arrow marker in PDF

Arguments

Type IntentOptional Attributes Name
class(pdf_stream_writer), intent(inout) :: this
real(kind=wp), intent(in) :: x
real(kind=wp), intent(in) :: y
real(kind=wp), intent(in) :: dx
real(kind=wp), intent(in) :: dy
real(kind=wp), intent(in) :: size
character(len=*), intent(in) :: style