(1) ~ZasrAnka~,
1. виртуальный принтер.есть бесплатные , типа bullzip
2. преобразовав pdf в jpeg через ВК , например. (либо вызовом уже готовых консольных утилит. есть такие как пример у библиотек mupdf и xpdf)
(3) ~ZasrAnka~, внешняя компонента. можно через вызов консольной утилиты mudraw это самое простое. см http://mupdf.com/downloads/ (mupdf-1.7a-windows.zip скачать и посмотреть mudraw) . минус , зато не будет работать на сервере и всяикх клиентах, где запрещен или не работает запуск консольных утилит
насколько я понимаю, там используется древняя компонента ексель, которая позволяет конвертировать в графические форматы,
помню я ее юзал еще на 7.7,
на 8.2 не пробовал, но судя по публикации - тоже работает
(5) Boneman,указаннаяч публикация использует виртуальный принтер. что касается екселя, то он действительно морально устарел (хотя автор на мой взгляд крутой программер, поскольку сделать такой собственный рендеринг на плюсах это мощно). проблема екселя(или 1С) к сожалению это некоторые проблемы с выводом прозрачных изображений на таб документах если такие есть. и потом там неудобно как на мой взгляд, там полностью надо вручную рассчитывать размеры изображения и документа.
(1) ~ZasrAnka~, я даже больше скажу . я сам писал COM библиотеку на C# с вызовом dll , которую написали на основе mupdf . но там были какие-то проблемы и я так не доделал ее. код там простой до безобразия, остался
public void SaveToJpg(string pdf_filename, string filename)
{
//Size newSize = new Size(Convert.ToInt32(1754), Convert.ToInt32(1240));
//Bitmap resized_img = null;
PDFLibNet.PDFWrapper _pdfDoc;
_pdfDoc = new PDFLibNet.PDFWrapper();
_pdfDoc.LoadPDF(pdf_filename);
_pdfDoc.CurrentPage = 1;
for (int i = 1; i <= _pdfDoc.PageCount; i++)
{
string _imgpath = filename + i.ToString() + ".jpg";
_pdfDoc.ExportJpg(filename + i.ToString() + ".jpg",
i, //From page
i, //To page
300, //Resolution in DPI
100, //Jpg quality
-1); //Time to wait, -1 to infinite.
//using (Bitmap _img = new Bitmap(_imgpath))
//{
// resized_img = ResizeImage(_img, newSize);
//}
//if (resized_img != null)
// resized_img.Save(_imgpath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
//resized_img.Dispose();
//resized_img = null;
}
Спасибо, попробую. Подскажите, еще пожалуйста, если выводим табдок в ексель, в екселе пользователь вносит изменения и закрывает. Как потом программно можно Ексель преобразовать в PDF или JPEG?
(6) ~ZasrAnka~, версии офиса выше 2007 умеют сохранять в pdf. насчет jpg , думаю что не умеют. тут возможно использование либо виртуального принтера, либо упомянутой компоненты yoksel
ImageMagickObject = Новый COMОбъект("ImageMagickObject.MagickImage.1");
ImageMagickObject.Convert("-density", "300", ИмяФайлаPdf, ИмяФайлаСРасширением);
Там где ИмяФайлаСРасширением, можно указывать строку с использованием управляющих конструкций (каких см на сайте их) для указания например номеров страниц
(11) Там где ИмяФайлаСРасширением, можно указывать строку с использованием управляющих конструкций (каких см на сайте их) для указания например номеров страниц