Как отобразить RTF-файл в WPF с помощью Powershell? - PullRequest
2 голосов
/ 17 августа 2010

Я напрасно гуглял несколько часов и, похоже, не могу найти способ просмотреть rtf-файл в форме PowerShell WPF.

Я могу получить файл RTF, используя:

$myContent = gc c:\myContent.rtf

но когда я пытаюсь отобразить его, используя:

$RichTextBox.appendText($myContent)

Я получаю закодированный RTF, а не правильно отформатированный контент.

У кого-нибудь есть способ сделать это? Существует множество примеров того, как это сделать в c #, но ни одного для PowerShell.

Спасибо

Ben

Ответы [ 2 ]

3 голосов
/ 17 августа 2010

.AppendText работает только со строками, а не с необработанным RTF. RTF - это последовательность управляющих кодов, смешанная с необработанным текстом. Вам нужно использовать другой метод для его анализа:

$stream = new-object IO.MemoryStream (`
       [Text.ASCIIEncoding]::Default.GetBytes($myContent))
$RichTextBox.Selection.Load($stream, [Windows.DataFormats]::Rtf)

Надеюсь, это поможет,

-Oisin

2 голосов
/ 18 августа 2010

ОК - так что я наконец-то понял, что нужно работать с некоторыми изменениями поста Ойсина.

Отметит его как "правильный" ответ, так как я бы не попал сюда без него, но подумал, что опубликую свой код на случай, если в будущем он кому-нибудь поможет:

$myContent = gc "c:\myContent.rtf"
$ascii = (new-Object System.Text.ASCIIEncoding).getbytes($myContent)
$stream = new-Object System.IO.MemoryStream($ascii,$false)
$RichTextBox.Selection.Load($stream, [Windows.DataFormats]::Rtf) 

Приветствия

Ben

...