Как добавить SVG-графику в PDF-документ, используя iText 7 в C #? - PullRequest
0 голосов
/ 11 января 2019

Я работаю над генератором наклеек, используя iText7 C #. Внешний вид последней наклейки выглядит следующим образом: https://drive.google.com/open?id=16q_sMP5H0eiVhq85DDRGgE-CDlX3fOB5

У меня проблема с добавлением SVG-графики в документ PDF. У меня есть графика в ссылке выше: https://drive.google.com/open?id=1bw2E5hVhKjjwYqn6aGbe_tNqPmYmXu4b https://drive.google.com/open?id=1lEqhrh2zAlOGlA1WMKfGtuhue6TBtcbc

Я не могу найти в Интернете практического примера, как прочитать файл SVG и добавить его в документ PDF с помощью iText7.

Может кто-нибудь помочь мне с этой темой?

Ответы [ 3 ]

0 голосов
/ 21 января 2019

Я использую этот код для добавления SVG-графики в документ PDF:

string enc_text = File.ReadAllText(SVG);                            

SvgConverter.DrawOnCanvas (enc_text, pdfCanvas);

но это работает только для простой графики SVG, как показано ниже https://www.w3schools.com/graphics/tryit.asp?filename=trysvg_ellipse3

не работает для этого SVG, созданного и сохраненного в CorelDraw: https://drive.google.com/file/d/1bw2E5hVhKjjwYqn6aGbe_tNqPmYmXu4b/view Можно ли нарисовать эту графику в PDF, используя itext7 C #?

0 голосов
/ 22 января 2019

Это код:

public const String SVG = @"C:\Users\Desktop\logo.svg";

....

string enc_text = File.ReadAllText(SVG);                            
SvgConverter.DrawOnCanvas(enc_text, pdfCanvas);

Я пробовал три раза, и ниже приведены результаты:

Попытка 1 SVG https://drive.google.com/open?id=1ibg_KwvviRQ4b9suniZwBJRdBdgM02te PDF - результат: ОК: https://drive.google.com/open?id=1DGGLUowlEYpAydbWTTSJORVxP67LGrf5

Попытка 2 SVG: https://drive.google.com/open?id=1UHASgAxAaPONIo9fc6VZ9q4cjjK-uOzj PDF - результат: половина скважины https://drive.google.com/open?id=1yzLF-fQQcOQvEXVyDN-UuK0YVeHOn5B_

Попытка 3 SVG https://drive.google.com/open?id=1ZNLDkc2x4WvHouKw-A4AgRrDuQ2pAoDE PDF - результат: нет логотипа https://drive.google.com/open?id=1nJVNT5oAMoI8HuUURZQv1yhu7IbFoI6H

SVG-графика хорошо отображается в браузерах, но iText не может правильно их рисовать, особенно те, которые сложны

0 голосов
/ 11 января 2019

Используя последний выпуск 7.1.4, вы добавляете SVG в документ, подобный этому:

public static void Convert(Stream svg, Stream pdfOutputStream) {
        SvgConverter.CreatePdf(svg, pdfOutputStream);
}

В этом классе есть много других возможностей для преобразования в PDF, но это самый простой метод для использования.

...