Справочная информация:
У меня есть PDF-файлы, которые я создаю программно. Мне нужно иметь возможность отправлять PDF-файл прямо на принтер с сервера (а не через промежуточное приложение). На данный момент я могу сделать все вышеперечисленное (сгенерировать PDF, отправить на принтер), но поскольку шрифты не встроены в PDF, принтер выполняет замену шрифтов.
Почему шрифты не встраиваются при создании:
Я создаю PDF-файлы с помощью SQL Reporting Services 2008. Известная проблема со службами SQL Reporting Services состоит в том, что они не встраивают шрифты (если не выполняется ряд требований - http://technet.microsoft.com/en-us/library/ms159713%28SQL.100% 29.aspx ). Не спрашивайте меня, почему PDF-файл соответствует всем перечисленным требованиям MS, и шрифты по-прежнему отображаются как не встроенные - нет реального контроля над тем, встроены ли шрифты, поэтому я согласился, что это не работает, и переехал . Предлагаемое решение от Microsoft ( http://blogs.msdn.com/b/donovans/archive/2007/07/20/reporting-services-pdf-renderer-faq.aspx в разделе «Когда будет Службы внедряют шрифты ») заключается в последующей обработке PDF-файла для встраивания шрифтов вручную.
Цель com / en-us / library / ms159713% 28SQL.100% 29.aspx ). Не спрашивайте меня, почему PDF-файл соответствует всем перечисленным требованиям MS, и шрифты по-прежнему отображаются как не встроенные - нет реального контроля над тем, встроены ли шрифты, поэтому я согласился, что это не работает, и переехал . Предлагаемое решение от Microsoft ( http://blogs.msdn.com/b/donovans/archive/2007/07/20/reporting-services-pdf-renderer-faq.aspx в разделе «Когда будет Службы внедряют шрифты ») заключается в последующей обработке PDF-файла для встраивания шрифтов вручную.
Цель com / en-us / library / ms159713% 28SQL.100% 29.aspx ). Не спрашивайте меня, почему PDF-файл соответствует всем перечисленным требованиям MS, и шрифты по-прежнему отображаются как не встроенные - нет реального контроля над тем, встроены ли шрифты, поэтому я согласился, что это не работает, и переехал . Предлагаемое решение от Microsoft ( http://blogs.msdn.com/b/donovans/archive/2007/07/20/reporting-services-pdf-renderer-faq.aspx в разделе «Когда будет Службы внедряют шрифты ») заключается в последующей обработке PDF-файла для встраивания шрифтов вручную.
Цель Возьмите уже сгенерированный PDF-документ, программно «откройте» его и вставьте шрифты, повторно сохраните PDF.
Подход Меня указали на iTextSharp, но большинство примеров относятся к версии Java, и у меня возникли проблемы с переводом на версию iTextSharp (я не могу найти никакой документации для iTextSharp).
Я работаю над этим сообщением, для чего Мне нужно сделать: Itext встраивать шрифт в PDF .
Однако, хоть убей, я не могу использовать объект ByteArrayOutputStream. Кажется, не может найти. Я исследовал и исследовал, но, похоже, никто не говорит, в каком классе он находится или где я его нахожу, поэтому я могу включить его в операторы using. Я даже взломал Reflector и нигде не могу его найти.
Это то, что у меня есть, и он компилируется и т. Д. И т. Д. (результат - мой байт [] сгенерированного PDF-файла.)
PdfReader pdf = new PdfReader(result);
BaseFont unicode = BaseFont.CreateFont("Georgia", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
// the next line doesn't work as I need a ByteArrayOutputStream variable to pass in
PdfStamper stamper = new PdfStamper(pdf, MISSINGBYTEARRAYOUTPUTSTREAMVARIABLE);
stamper.AcroFields.SetFieldProperty("test", "textfont", unicode, null);
stamper.Close();
pdf.Close();
Так может ли кто-нибудь помочь мне с использованием iTextSharp для встраивания шрифтов в PDF-файл или указать мне правильное направление?
Я более чем счастлив использовать любые другие решения, кроме iTextSharp для достижения этой цели, но они должны быть бесплатными и могут использоваться бизнесом для внутреннего приложения (например, Affero GPL).