2011-11-08 47 views
4

我喜歡在WPF應用程序中顯示XPS文檔的DocumentViewer。但我還需要編輯XPS文檔。我找到了用於重新編輯XPS的獨立應用程序(.exe)。我需要的是一個WPF控件,用於查看和修改XPS。或者是DocumentViewer的擴展以進行編輯。編輯必須實際刪除數據,而不是隱藏它(這是針對訴訟應用程序的)。有誰知道在WPF中查看和修改XPS的方法嗎?WPF XPS更新

+0

可能使用自定義分頁器,因爲此時所有內容都已變成視覺效果。 1)找到要編輯的文本,在文本上創建一個黑色的形狀,然後將頁面平鋪爲單個圖像。我不確定的明天必須檢查的唯一部分是如何準確地選擇段落/運行/字形並對它們進行編輯。如果您之後可以選擇任何非編輯文本,也不確定。 – Dennis

+0

不要忘記「必須實際刪除數據」部分。不可能沒有任何不完整。 – Paparazzi

+0

這是我關於展開視覺效果的觀點,編輯區下的文字視覺會被破壞。 – Dennis

回答

3

使用自定義DocumentPaginator,您可以控制如何打印文檔的每個元素。

如果您可以識別要編輯的文本範圍,則可以用黑色視覺替換字形,而不要將文本範圍添加到最終文檔。

...

嗯。當我輸入上面的內容時確實聽起來有點複雜,當有更簡單的解決方案時。

  1. 閱讀XPS文檔,將其轉換爲FlowDocument。
  2. 允許用戶選擇文本範圍進行編輯。
  3. 用████████████████字符(U + 2588,Full Block)替換*選定的文本。
  4. 將文檔轉換回XPS並打印。

*當您替換原始文本時,它在複製/粘貼操作中將不可用。

有大量關於如何分開上述步驟的教程。讓我知道你是否需要任何額外的幫助。

1

如果我的大腦不撒謊,您不能直接編輯XPS,但可以創建WPF文檔表示,編輯它並打印到新的XPS文件。

+0

什麼是「WPF演示文稿」,它是如何編輯的? – Paparazzi

+1

Arman是對的......即使您可以向XPS添加文本(不推薦),它也不會保留邊距和PageLength等重要內容,所以WPF不會重新格式化文檔。請記住,XPS文檔幾乎是「石頭寫下來的」,已經格式化並準備好打印。 – NestorArturo