Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   C# Как скопировать PDF файл с диска в буфер обмена? (http://forum.oszone.net/showthread.php?t=230932)

Sanchos 21-03-2012 19:18 1884123

C# Как скопировать PDF файл с диска в буфер обмена?
 
Точнее как скопировать содержимое файла (то что видно, скажем в WinHex)...

Весь инет облазил и ничего подходящего не могу найти, может не там смотрю... Вообще, первое что пришло в голову:
Код:

Clipboard.SetData(@"Portable Document Format", File.ReadAllBytes(pdfTempFile));
И вроде бы всё записалось но есть одно НО - к данным в буфере в начало добавляется ещё что то, а надо что бы были только данные с самого файла.
Собственно как решить вопрос? Заранее спасибо.

П.С. и не спрашивайте "а нафига тебе это", надо - значит надо :)

Iska 21-03-2012 20:40 1884191

Цитата:

Цитата Sanchos
П.С. и не спрашивайте "а нафига тебе это", надо - значит надо »

Во-первых, Вы не правы — может оказаться, что Ваша проблема может нуждаться в ином решении, либо вовсе не нуждаться в решении. Во-вторых, с таким подходом Вы далеко не уедете.

Потому требование — всегда озвучивайте конечную цель — выстрадано простынями оказавшегося ненужным кода и часами потерянного времени.

ferget 21-03-2012 20:44 1884195

Цитата:

Цитата Sanchos
И вроде бы всё записалось но есть одно НО - к данным в буфере в начало добавляется ещё что то, а надо что бы были только данные с самого файла. »

что именно добавляется?

Sanchos 21-03-2012 21:23 1884226

Вложений: 1
Цитата:

что именно добавляется?
см. аттач (выделенное)

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

Clipboard.GetData("Portable Document Format") as byte[];
А те данные что записываются сторонним приложением (в ПДФ без добавления в начале) так уже не найти.
Суть в том что мне нужно обеспечить возможность копи-паста между двумя программами и ПДФ подходит как нельзя лучше, т.к. данные -- векторная/растровая графика с эффектами.

Sanchos 21-03-2012 21:58 1884260

Блин и как всегда оказалось очень просто:

Код:

var ms = new MemoryStream(File.ReadAllBytes(@"c:\test.pdf"));
var iData = new DataObject();
iData.SetData(@"Portable Document Format", ms, false);
Clipboard.SetDataObject(iData, true);


Delirium 22-03-2012 02:15 1884363

Sanchos, из-за часовых поясов не успел тебе ответить, ты сам нашел решение :). Отметь тему решенной, если вопрос снят.


Время: 21:09.

Время: 21:09.
© OSzone.net 2001-