Если это предназначено для печати, вы можете использовать paper.css
https://github.com/cognitom/paper-css
примеры [1110 ]
https://github.com/cognitom/paper-css/blob/master/examples/a4-landscape.html
Все доступные размеры страниц доступны CSS
Спасибо.
Буферы протокола могли бы быть полезны для Вас.
Буферы протокола являются нейтральным в отношении языка, независимым от платформы, расширяемым механизмом Google для сериализации структурированных данных – думают XML, но меньший, быстрее, и более простой. Вы определяете, как Вы хотите, чтобы Ваши данные были структурированы однажды, затем можно использовать специальный сгенерированный исходный код, чтобы легко записать и считать структурированные данные в и от множества потоков данных и использования множества языков – Java, C++ или Python.
Порты.NET доступны от Marc Gravell и Jon Skeet.
WCF is the .NET framework solution for serializing data it looks like this link figured out how to consume the data in c++, that's kind of the opposite direction of what you want, but there might be an easy analog for reversal.
http://geekswithblogs.net/cicorias/archive/2007/08/28/Consuming-WCF-Services-from-COM-using-C.aspx
C++ не имеет структурного самоанализа (Вы не можете узнать поля класса во времени выполнения), таким образом, нет общих механизмов для записи объекта C++. Или необходимо принять конвенцию и использовать генерацию кода или (более обычно) писать сериализацию сами.
Существуют некоторые библиотеки для стандартных форматов, таких как ASN.1, HDF5, и так далее которые являются нейтральным языком реализации. Существуют собственные библиотеки, которые служат той же цели (например, буферы протокола).
Если Вы нацелены на конкретную архитектуру и компилятор, то можно также просто вывести объект C++ как необработанные байты, и создавать синтаксический анализатор на стороне C#.
Вполне то, что лучше, зависит, как сильно связанный Вы хотите, чтобы Ваши конечные точки были, и являются ли данные главным образом числовыми (HDF5), дерево и структуры последовательности (ASN.1) или простые простые объекты данных (непосредственно пишущий значения в памяти)
Существует много опций, из которых можно выбрать. Именованные каналы, общая память, DDE, дистанционная работа... Зависит от Вашей конкретной потребности.
Быстрый поиск с помощью Google дал следующее:
Другие опции были бы:
создание двоичного файла, который содержит данные в способе, которым Вам нужен он (не легкое и портативное решение)
XML
YAML
файлы простого текста
Как упомянуто уже, Буферы Протокола являются хорошим вариантом.
Если бы та опция не удовлетворяет Вашим потребностям, то я посмотрел бы на отправку XML клиенту (необходимо будет снабдить префиксом сообщение длину, таким образом, Вы знаете, сколько читать), и затем использование реализации IXmlSerializer, или используйте атрибуты DataContract/DataMember в сочетании с DataContractSerializer для получения представления в.NET.
Я рекомендовал бы против использования атрибутов маршалинга, поскольку они не поддерживаются на вещах как List<T>
и много других стандартных классов.NET, которые Вы обычно использовали бы.