2013-06-28 2 views
-2

Я пытаюсь создать PDF-файл из массива байтов вСоздание PDF из массива байтов

string str = "Hello World"; 
byte[] byteArray = Encoding.ASCII.GetBytes(str); 
using(FileStream fs = new FileStream(path, FileMode.OpenorCreate, FileAccess.ReadWrite, FileShare.None)) 
{ 
    fs.Write(byteArray, 0, byteArray.Length); 
} 

Это создает файл. Однако, когда я пытаюсь открыть файл, я получаю следующую ошибку:

adobe reader could not open file because it is not a supported file type 

Я могу открыть другие файлы в формате PDF. Что вызывает эту ошибку?

+0

Вы уверены, что ваш массив байтов - это полный pdf-файл? –

+0

см. Мои правки. Я преобразовываю строку в массив байтов – user544079

+0

В примере кода вы записываете регулярную строку в файл. Вы пытаетесь открыть этот файл, который не содержит информации «pdf»? – gunr2171

ответ

1

Если вы хотите создать файл Hello World в формате PDF, вам понадобится библиотека для этого.

Например: этот пример Java HelloWorld создает это hello.pdf. Загрузите hello.pdf и откройте его в текстовом редакторе, и вы увидите, что он содержит гораздо больше, чем байты «Hello World».

Я вижу, что вы программист на C#. Вы можете найти порт C# примера HelloWorld here. iText является лишь одной из многих библиотек, я упоминаю об этом, потому что я являюсь оригинальным разработчиком iText. Простой поиск для PDF libraries покажет больше вариантов.

3

Формат pdf - это не просто «Hello World». Он содержит большое количество информации о форматировании и самом файле. Вам нужно будет изучить библиотеки, которые помогут вам создавать pdf-файлы, а не записывать «Hello World». Это похоже на запись чего-то в txt-файл и открытие его в Photoshop - это не будет действительный файл.