Страница 1 из 2

Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 02:50
novavision
Доброй ночи.
Возникла необходимость сохраннеия счета в виде PDF файла с возможностью выделения и копирования текста.
В AssetStore пусто.. готовых решений нет. Накопал некий PDFSharp, но я даже его интергрировать не смог. Подскажите, как решить задачу с минимальными временными затратами? В идеале было был где то заказать/купить модуль, в котором вводишь данные таблицы, скажем в массиве, а он раскидывает их по графам. Большего по сути не надо

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 04:21
Woolf
http://habrahabr.ru/post/112707/

как решить задачу с минимальными временными затратами

Имхо, по собственному опыту java+pdf это нихрена не так просто, как кажется. Сам формат PDF чрезвычайно наворочен и простых путей там нет.

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 05:15
DbIMok
novavision писал(а):Возникла необходимость сохраннеия счета в виде PDF файла с возможностью выделения и копирования текста.

вы не указали платформу(ы). потому что вариантов решения масса. например, можно получить pdf из Google Drive'a, загрузив в него csv или сразу сохраняя данные в его табличку. если интернет недоступен, а платформа standalone, можно запускать скрытый процесс с каким нибудь консольным csv2pdf.
novavision писал(а):В AssetStore пусто.. готовых решений нет

пусто, потому что масса библиотечек. что им делать в сторе? бери да используй.
http://deymon.online.fr/unity3d/TestPDF.zip

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 12:07
novavision
DbIMok писал(а):пусто, потому что масса библиотечек. что им делать в сторе? бери да используй.

Вот эта бибилиотека вроде пошла.. Все что пробовал до этого (PDFSharp iTextSharp) в свободном скачивании в сети - куча файлов, которые при размещении в проекте работать не хотели.. Постоянно какие то ошибки в классах, namespace и т.д. Даже вот это не заводится
http://www.francescogallorini.com/2011/02/unity-sharp-pdf/
Может я что то не так делаю, еще до этого не внедрял сторонние библиотеки в Unity проект

DbIMok писал(а):вы не указали платформу(ы). потому что вариантов решения масса. например, можно получить pdf из Google Drive'a, загрузив в него csv или сразу сохраняя данные в его табличку. если интернет недоступен, а платформа standalone, можно запускать скрытый процесс с каким нибудь консольным csv2pdf.

платформа - Windows. Постоянного досутпа в сеть может и не быть, так что первый вариант не подходит. Со вторым.. разобраться будет сложнее наверное даже.

Woolf писал(а):Имхо, по собственному опыту java+pdf это нихрена не так просто, как кажется. Сам формат PDF чрезвычайно наворочен и простых путей там нет.

у меня все просто - 1 таблица и все


Буду пробовать с iTextSharp.dll, которую приложили.. надеюсь смогу интергрировать, спасибо

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 12:38
DbIMok
если будете широко распространять, обратите внимание на ее лицензию http://itextpdf.com/pricing там же мануалы и примеры http://itextpdf.com/learn

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 28 фев 2015, 13:32
novavision
dll у меня идет, все в порядке. Но вот вопрос такой - почему же до этого я еще качал source PDFSharp (https://pdfsharp.codeplex.com/releases) и iTextSharp, кидал в папку проекта Unity, и ничего не работало. Было куча ошибок в консоли.. Что не так то? Ест ькакие то особенности интерграции пакетов?

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 01 мар 2015, 10:27
novavision
Поторопился я радоваться.. При проигрывании в Editor все в порядке, а вот при попытке создать Build получаю следующие ошибки
Скрытый текст:
Синтаксис:
Используется csharp
ArgumentException: The Assembly System.Drawing is referenced by itextsharp. But the dll is not allowed to be included or could not be found.
UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:137)
UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:140)
UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:172)
UnityEditor.HostView:OnGUI()

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 01 мар 2015, 16:01
DbIMok
Потому что она в проект не попадает. скопируйте System.Drawing.dll из %Unity Folder%\Editor\Data\Mono\lib\mono\2.0 в каталог проекта Plugins

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 02 мар 2015, 00:40
novavision
Спасибо, работает.. Но все таки хотелось бы прояснить этот вопрос с интергрированием бибилиотек, чтобы потом не сталкиваться с подобной проблемой. Можете посоветовать какой то материал для прочтения?

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 02 мар 2015, 01:09
DbIMok
http://docs.unity3d.com/ru/current/Manu ... lders.html в остальном просто здравый смысл

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 02 мар 2015, 14:46
novavision
во, это уже многое прояснило. Спасибо еще раз

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 05 мар 2015, 14:39
novavision
Возникла проблема с созданием PDF. В unity все гладко - делаю BaseFont
Синтаксис:
Используется csharp
string combineStr       = Path.Combine(Application.dataPath+"/Resources/Fonts", "Calibri Regular.ttf");
BaseFont bf             = BaseFont.CreateFont(combineStr, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font titleFont  = new iTextSharp.text.Font(bf, 10f, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

Создвая ПДФ в Unity все кирилические символы отображаются, и никаких ошибок нету
А вот в билде ловлю ошибку
Синтаксис:
Используется csharp
"ArgumentException: Encoding name 'windows-1252' not supported
Paremeter name: name.


В сети никаких решений не нашел. Вернее все говорится именно о таком создании фона, но у меня почему то не работает

РЕШЕНО!
проблема опять был в нехватающих .dll
http://answers.unity3d.com/questions/42955/codepage-1252-not-supported-works-in-editor-but-no.html

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 06 мар 2015, 01:18
DbIMok
скопируйте в Plugins I18N.dll и I18N.West.dll из %UNITY_PATH%\Data\Mono\lib\mono\2.0

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 06 мар 2015, 01:29
novavision
почти одновременно ) ох.. сколько же я времени на это потратил, я думал это какая то особенность iTextSharp

Re: Как создать PDF с текстом и табоицами на C#?

СообщениеДобавлено: 06 мар 2015, 01:38
DbIMok
решение легко гуглится по тексту ошибки даже на этом форуме