2016-09-20 1 views
0

У меня вопрос, который не должен быть слишком сложным для ответа, но я очень новичок в C++ и не смог понять это.Пути рисования на pdf-файлах, используя jagPDF в C++

Я использую JAGPDF, чтобы создать pdf-файл, который отображает вывод моей программы на C++. Используя JagPDF, я пытаюсь просто нарисовать прямоугольник, следуя их инструкциям. К сожалению, их примеры сделаны на Python, и необходим небольшой «перевод». Код в питоне

canvas.rectangle(50, 400, 500, 350) 
canvas.path_paint('s') 

функция path_paint в C++ определяются следующим образом:

void path_paint(Char const* cmd); 

В соответствии с руководством, CMD задаются строкой, состоящей из содержательной комбинации следующих букв:

's' stroke 
'f' fill - nonzero winding 
'F' fill - even odd 
'c' close 
'w' clip - nonzero winding 
'W' clip - even odd 

Я пытался делать что-то вроде этого

char cmd = 's'; 
char const* ptr = &cmd; 
doc.page().canvas().path_paint(ptr); 

но дает мне ошибки. Как я могу правильно называть эту функцию? Спасибо вам за помощь.

+0

Пробовали ли вы читать ошибки? Рассматривали ли вы фактическое размещение их как часть своего вопроса? – paddy

+0

Извините, это не ошибка, это исключение, как если бы вход функции был неправильным. Таким образом, это не дает мне сообщение об ошибке только что-то вроде «Необработанное исключение в 0x770196C2 в PDF.exe: исключение Microsoft C++: jag :: pdf :: Исключение в ячейке памяти 0x00F8D308». поэтому нет никакой помощи от этого –

+1

Не смотря на API, чтобы убедиться, что вы вызываете 'path_paint' правильно, я просто укажу, что вы не дали ему строку, и поэтому у вас есть неопределенное поведение. Передайте фактическую строку с нулевым завершением, а не указатель на такой символ: 'path_paint (" s ")' – paddy

ответ

0

Этот объект хорошо задокументированы в разделе Текст:

doc.page().canvas().text(50, 760, "Text"); 

или с использованием шрифта:

Canvas canvas = doc.page().canvas(); 
canvas.text_start(20, 420); 
canvas.text_font(font); 
canvas.text("Text"); 
canvas.text_translate_line(0, font.height());