first working self-contained build!
This commit is contained in:
parent
3d4e6cf1bb
commit
bc3ff140b1
3685
output.pdf
3685
output.pdf
File diff suppressed because it is too large
Load Diff
|
@ -30,7 +30,6 @@ const TextCard = struct {
|
|||
lines: [][]const u8 = undefined,
|
||||
};
|
||||
|
||||
|
||||
//dimension constants and defaults
|
||||
const cardWidth = 30;
|
||||
const cardHeight = 32;
|
||||
|
@ -94,7 +93,7 @@ pub fn main() !void {
|
|||
|
||||
var allPrinted = std.ArrayList(u8).init(allocator);
|
||||
|
||||
const pdf_doc: *c.pdf_doc = @ptrCast(c.pdf_create(c.PDF_A4_WIDTH, c.PDF_A4_HEIGHT, &c.pdf_info{.creator = ("My Software" ++ " " ** 53).* }).?);
|
||||
const pdf_doc: *c.pdf_doc = @ptrCast(c.pdf_create(c.PDF_A4_WIDTH, c.PDF_A4_HEIGHT, &c.pdf_info{ .creator = ("My Software" ++ " " ** 53).* }).?);
|
||||
_ = c.pdf_set_font(pdf_doc, "Times-Roman");
|
||||
|
||||
var rowToPrint = std.ArrayList(TextCard).init(allocator);
|
||||
|
@ -108,11 +107,27 @@ pub fn main() !void {
|
|||
} else {
|
||||
try cardRow.print(allocator, rowToPrint.items, &allPrinted);
|
||||
std.debug.print("{s}", .{allPrinted.items});
|
||||
const page = c.pdf_append_page(pdf_doc);
|
||||
_ = c.pdf_add_text(pdf_doc, page, @ptrCast(allPrinted.items[0..10]), 12, 10, c.PDF_A4_HEIGHT - 12, c.PDF_BLACK);
|
||||
_ = c.pdf_add_text(pdf_doc, page, "HELLO WEST VIRGINIA", 12, 10, c.PDF_A4_HEIGHT - 12, c.PDF_BLACK);
|
||||
//TODO (fixme):
|
||||
// wrong type error when not using ptrCast, nothing printed when using it
|
||||
// _ = c.pdf_add_text(pdf_doc, page, allPrinted.items[0..50], 12, 10, c.PDF_A4_HEIGHT - 12, c.PDF_BLACK);
|
||||
// _ = c.pdf_add_text(pdf_doc, page, allPrinted.items[0..50], 12, 10, c.PDF_A4_HEIGHT - 12, c.PDF_BLACK);
|
||||
// _ = c.pdf_add_text(pdf_doc, page, "HELLO WEST VIRGINIA", 12, 10, c.PDF_A4_HEIGHT - 12, c.PDF_BLACK);
|
||||
rowToPrint.clearAndFree();
|
||||
}
|
||||
var rowsPrinted: f32 = 0;
|
||||
var page = c.pdf_append_page(pdf_doc);
|
||||
var textIterator = std.mem.splitAny(u8, allPrinted.items, "\n");
|
||||
_ = c.pdf_set_font(pdf_doc, "Courier");
|
||||
while (textIterator.next()) |text| {
|
||||
if (rowsPrinted < pageHeight) {
|
||||
rowsPrinted += 1;
|
||||
_ = c.pdf_add_text(pdf_doc, page, try std.mem.Allocator.dupeZ(allocator, u8, text), 8, 10, c.PDF_A4_HEIGHT - (12 * rowsPrinted), c.PDF_BLACK);
|
||||
} else {
|
||||
rowsPrinted = 1;
|
||||
page = c.pdf_append_page(pdf_doc);
|
||||
_ = c.pdf_add_text(pdf_doc, page, try std.mem.Allocator.dupeZ(allocator, u8, text), 8, 10, c.PDF_A4_HEIGHT - (12 * rowsPrinted), c.PDF_BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
_ = c.pdf_save(pdf_doc, "output.pdf");
|
||||
_ = c.pdf_destroy(pdf_doc);
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue