[Raku PDF Project] / [PDF-Native Module] / PDF::Native :: Writer
class PDF::Native::Writer
Serialization functions for PDF components and datatypes
Serialization functions have been implemented for a few PDF data-types:
- boolean, real, integers, literal-strings, hex-strings, names and cross reference tables.
use PDF::Native::Writer;
given PDF::Native::Writer {
say .write-bool(0); # false
say .write-bool(1); # true
say .write-real(pi); # 3.14159
say .write-int(42e3), # 42000
say .write-literal("Hi\nthere"); # (Hi\nthere)
say .write-hex-string("snoopy"); # <736e6f6f7079>
say .write-name('Hi#there'); # /Hi##there
# xref entries
enum <free inuse>;
my uint64 @xref[4;3] = (
[0, 65535, free],
[42, 0, inuse],
[69, 0, inuse],
[100, 2, inuse],
);
say .write-entries(@xref).lines;
# 0000000000 65535 f
# 0000000042 00000 n
# 0000000069 00000 n
# 0000000100 00002 n
}
Methods
method write-bool
method write-bool(
Bool:D $val,
$buf = Code.new
) returns Str
write ‘true’ or ‘false’
method write-int
method write-int(
Int:D $val,
$buf = Code.new
) returns Str
write simple integer, e.g. ‘42’
method write-real
method write-real(
Num(Any) $val,
$buf = Code.new
) returns Str
write number, e.g. ‘4.2’
method write-literal
method write-literal(
Str:D $val,
Blob $buf? is copy
) returns Str
write string literal, e.g. ‘(Hello, World!)’
method write-hex-string
method write-hex-string(
Str:D $val,
Blob $buf? is copy
) returns Str
write binary hex string, e.g. ‘
multi method write-entries
multi method write-entries(
array $xref,
Blob $buf? is copy
) returns Str
write cross reference entries
method write-name
method write-name(
Str:D $val,
Blob $buf? is copy
) returns Str
write name, e.g. ‘/Raku’