0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 11
1

Как конвертировать XPS в pdf на сервере?

31.10.2017, 08:01. Показов 4338. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Есть веб приложение, которое генерирует XPS документы.
В последнее время пользователи жалуются, что не перестали скачиваться документы - как выяснилось загрузку блокирует и сами браузеры и антивирус. Скачивать получается только через firefox.
В связи с чем есть идея конвертировать xps в какой нибудь другой формат, например pdf или doc.
Вопрос: есть ли такие библиотеки чтобы конвертировать xps в стриме?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MemoryStream ms = null;
byte[] bytes = null;
 
ms = flowDoc.GetStream(); //получаем готовый xps, сгенерированный в самописной длл
bytes = ms.ToArray();
 
[B]где то тут надо сделать фокус - мокус[/B]
 
//отдаем файл
string docName = string.Format("document#{0}.xps", id);
HttpResponse response = page.Response;
response.Clear();
response.ContentType = "application/vnd.ms-xpsdocument";
response.AddHeader("Content-Disposition", "attachment; filename=" + docName);
response.OutputStream.Write(bytes, 0, bytes.Length);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2017, 08:01
Ответы с готовыми решениями:

Как конвертировать HTML в PDF или XPS
Формирую документ в HTML, но из за немощности IE вывод на печать всегда проблематична и с косяками,...

PDF to XPS
Всем привет. Давно интересует вопрос: Нет ли у кого на примете библиотеки, для перевода PDF...

Как конвертировать odf в pdf?
Версия python - 2.7.3. Подскажите, пожалуйста, питоновскую open-source библиотеку, позволяющую...

Как конвертировать HTML в PDF
Формирую документ в HTM и появилась необходимость сохранять его. Подскажите плиз, как можно...

5
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
31.10.2017, 10:30 2
frizz1,
stackoverflow.com
habrhabr: PDF в ASP.NET Core
0
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 11
04.11.2017, 20:38  [ТС] 3
Спасибо, однако первый вариант требует сохранения временных файлов на диске на сервере, а второй - получается нужно переписывать приложение под новый фреймворк?
0
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
04.11.2017, 20:56 4
frizz1, честно сказать не знаю, нет возможности сейчас проверить. Возможно воспользовывшись первым вариантом можно и не использовать промежуточный xps файл... нодо ковыряться..
1
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
04.11.2017, 21:08 5
Лучший ответ Сообщение было отмечено frizz1 как решение

Решение

https://github.com/EbenZhang/P... nverter.cs
- дописать метод под MemoryStream не так уж и сложно.
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 11
15.06.2020, 08:01  [ТС] 6
C#
1
2
3
4
System.IO.MemoryStream s1 = new System.IO.MemoryStream();
                var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(ms);
                PdfSharp.Xps.XpsConverter.ConvertToPdfInMemory(pdfXpsDoc, s1, 0);                   
                bytes = s1.ToArray();
Дописать в классе PdfSharp (added to the PdfSharp.Xps.XpsConverter class):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void ConvertToPdfInMemory(XpsDocument xpsDocument, MemoryStream pdfMemoryStream, int docIndex)
{
if (xpsDocument == null)
throw new ArgumentNullException("xpsDocument");
if (pdfMemoryStream == null)
throw new ArgumentNullException("pdfMemoryStream");
 
FixedDocument fixedDocument = xpsDocument.GetDocument();
PdfDocument pdfDocument = new PdfDocument();
PdfRenderer renderer = new PdfRenderer();
 
int pageIndex = 0;
foreach (FixedPage page in fixedDocument.Pages)
{
if (page == null)
continue;
PdfPage pdfPage = renderer.CreatePage(pdfDocument, page);
renderer.RenderPage(pdfPage, page);
pageIndex++;
}
pdfDocument.Save(pdfMemoryStream, false);
}
0
15.06.2020, 08:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2020, 08:01
Помогаю со студенческими работами здесь

Как конвертировать из docx в pdf?
Пробовал self.in_file = r'c:/project/func.docx' self.out_file=...

Как html страницу конвертировать в pdf?
Доброго времени суток. Подскажите пожалуйста как мне конвертировать html страницу в pdf?? Мне...

как конвертировать таблицы Excel в PDF?
привет.скажите пожалуста как я могу конвертировать таблиц Excel в PDF для Delphi

Как конвертировать HTML файл в PDF?
Такая проблема. Создаю HTML файл, сохраняю. Нужно его преобразовать в PDF, iTextSharp.dll...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru