Skip to content

AVPolyakov/SharpLayout

Repository files navigation

Table of Contents

Nuget package

Nuget package

Base elements to create pdf document

The table is a N × M matrix:
Table.png
Paragraph, table and image can be inserted into cell of table. Paragraph is a collection of Span elements. Text and font parameters can be specified for Span element. Paragraph exemple:
Paragraph.png

Examples

Payment Order

See the PDF file created by PaymentOrder.cs sample: PaymentOrder.pdf. Highlighting of cells r1c1 and paragraphs for development PaymentOrder_Dev.pdf PaymentOrder.pdf

Справка о валютных операциях

Ссылка для скачивания формы справки о валютных операциях (ОКУД 0406009). Копия.
C# код Svo.cs для создания справки о валютных операциях. Результат Svo.pdf. Подсветка в режиме разработки Svo_Dev.pdf. Слева фиолетовым указаны номера строк в исходном коде Svo.cs.

Паспорт сделки по контракту

C# код ContractDealPassport.cs для создания паспорта сделки по контракту. ContractDealPassport.pdf.
Ссылка для скачивания формы паспорта сделки по контракту (ОКУД 0406005 Форма 1). Копия.

Паспорт сделки по кредитному договору

C# код LoanAgreementDealPassport.cs для создания паспорта сделки по контракту. LoanAgreementDealPassport.pdf.
Ссылка для скачивания формы паспорта сделки по контракту (ОКУД 0406005 Форма 2). Копия.

Вставка векторной картинки

См. метод VectorImage в файле Tests.cs. Результат Rabbits.pdf.

Live Viewer

To use LiveViewer tool, you need to compile LiveViewer project. After compilation you need to add to PATH environment variable the directory path where LiveViewer.exe file is located.

SharpLayout can save a document as png image by method SavePng.

To open image file Temp.png by LiveViewer tool, you need run the following command:

LiveViewer Temp.png

LiveViewer tool tracks file changes and automatically updates a image on the screen.

You can hold Ctrl and mouse left click on the image Ctrl + Сlick, LiveViewer will jump to the corresponding line of source code in Visual Studio or JetBrains Rider.

You can resize a elements by mouse. Select the size in Visual Studio editor. Hold left button and draw a rectangle by mouse in LiveViewer. Press w (width) or h (height) button. See second video below. If you use Rider the height or width will be copied to clipboard.

To change scale of image, change resolution parameter in SavePng method.

If you are running multiple instances of Visual Studio, you can specify a process PID. For example:

LiveViewer Temp.png vs 15780

Demo Video

Изменение размеров мышкой

Navigation in JetBrains Rider:

LiveViewer Temp.png rider

SharpLayout_Rider.gif

Developer Tools

Отображение адресов ячеек R1C1 – document.R1C1AreVisible = true
Подсветка ячеек – document.CellsAreHighlighted = true
r11.png
Подсветка параграфов – document.ParagraphsAreHighlighted = true
r9.png
Отображение номеров строк исходного кода в ячейке – document.CellLineNumbersAreVisible = true
r10.png

Data binding

Для того чтобы быстро проверить привязку данных можно вывести выражения в отчете ExpressionVisible = true:
r8.png
Выражения отображаются в отчете, если привязка данных выполнена с помощью expression tree lambda:
r8.png

Конвертация pdf файла в png для измерения расстояний

Программа ConvertPDF конвертирует любой pdf файл в png файл с разрешением 254 пикселя на дюйм. Таким образом, один пиксель соответствует одной десятой миллиметра.

Компилируем проект ConvertPDF. Запускаем ConvertPDF.exe. Output format выбираем png256.

Плагин к Paint.NET для измерения расстояний

Ссылка.

Сравнение производительности MigraDoc vs SharpLayout

Ссылка.

Процесс создания отчета

Скачиваем из КонсультантПлюс форму платежного поручения (Форма 0401060) в формате MS-Word:
PaymentOrderBlank.png
Создаем столбец c1 и строку r1. Ширину столбца 3.5 см копируем из MS-Word:
Code1.png
На экране видим:
r1.png
Добавляем в ячейку текст:
Code2.png
На экране отображается:
r2.png
Выравниваем текст по центру:
Code3.png
r3.png
Добавляем нижний бордюр ячейки:
Code4.png
r4.png
Добавляем строку r2 и вставляем текст в ячейку r2[c1]:
Code5.png
r5.png
Добавляем столбец c2. Ширину столбца 1.25 см копируем из MS-Word:
Code6.png
r6.png
Добавляем столбец c3 и наполняем ячейки содержимым:
r7.png
Ширину столбца c5 1.5 см копируем из MS-Word. Столбец c4 должен занять все оставшееся на странице место. Поэтому ширину столбца c4 зададим с помощью формулы:
Code7.png
Задание ширины с помощь формулы позволяет менять поля страницы и ширины других столбцов.
r8.png
Аналогичным образом заполняем оставшиеся 63 ячейки. В итоге получаем вот такое платежное поручение.

About

C# library for creating PDF

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published