システムwiki

C#コードを使用してDOCファイルの透かしを設定できません.

PapitaA 受付中 最終更新日:2021-05-08 05:40

こんにちはチーム、
C#を使用してDocファイルに透かしを追加しようとしています.ファイル内の透かしを設定するには、shapes.addpicture()を使用してシェイプオブジェクトを作成しました.
整理の可視性を設定しようとすると、この内部例外のため、不明瞭な例外が発生しています.
例外は下の行のために起こっています
shape.visible= Microsoft.Office.Core.MsotRistate.MSOFALSE;
2.Shape.lockAspectratio= Microsoft.Office.Core.MsotRistate.msotrue;
Microsoft.Office.Core.MSOTRistate.MSOFALSEを他の変数に割り当てようとしました.
そしてそれはうまくいきます、
Microsoft.Office.Core.MSOTRistateの束縛value while issue ofオブジェクトへの問題は問題です.
{問題はDocファイルのみであり、DocX用のものではなく、これは共有場所からDocファイルを開いているときに起こります}
以下のコードを見てください、



PUBLICオーバーライドボイドセットワイヤマーク(オブジェクトO、オブジェクト透かし)
{
Word.Section T=(Word.Section)O;
文字列text= watermark.toString();
Word.HeaderFooter HeaderFooter= NULL;
Word.PageSetup PageSetup= NULL;
Microsoft.Office.Interop.word.Shape Shape= NULL;
Word.HeaderSfooters headerSfooters= null;
Word.Shapes Shapes= NULL;
お試しください
{
ヘッダーフーター= T.Headers.
if(headersfooters== null)
{headerSfooters= t.footers; }
if(headersfooters== null)
{新しい例外( "透かしを設定できない-
NULLヘッダーとフッター」); }
ヘッダフーター=
HeaderSfooters [Word.WDheaderFooterIndex].
WdheAderFooterprimary];
PageSetup= T.PageSetup;
文字列path= hfwutils.setandgetWaterMarkPath.
(テキスト、 "doc"、pagesetup.pagewidth、
PageSetup.pageHeight、90、true);
Object LinkToFile= false;
Object SaveWithDocument= true;
shapes= headerfooter.shapes;
shape= shapes.addpicture.
(パス、LinkTofile、SaveWithDocument);
//
Shape.visible=
Microsoft.Office.Core.MSotRistate.msofalse;
shape.name= hfwtype.cxwatermark.toString();
shape.lockaspectratio=
Microsoft.Office.Core.MSotRistate.msotrue;
//「相対サイズと位置」を設定します
ページ余白
shape.relativeVerticalPosition= Word.
WDRELATICERTICALPOSITION.
wdrelativeVerticalPositionMargin.
shape.relativeVerticalSize= Word.
WDRELATICERVERTICALSIZE.
WDRELATIVERVERTICALSIZEMARGIN;
shape.relativeHorizuntalPosition= Word.
WDRELATIVEHORIZONTALPOSTARPOSTAYSTARPOSTAYSOLPOSTAYSO.
WDRELATIVEHORIZONTALPOSITIONSMARGIN;
shape.relativeHorizoNtalSize= Word.
WDRELATIVEHORIZALSANSERSIZE.
WDRELATIVEHORIZONTALSIZEMARGIN;
shape.top=(float)単語.
WDShapePosition.WDShapeCenter;
shape.left=(float)Word.WDShapePosition.
WDShapeCenter; ;
Shape.visible= Microsoft.Office.Core.
msotristate.msotrue;
}
最後に
{
//COMオブジェクトをリリースするコード
}
}

例外の詳細-'winword.exeの0x68eccab(wwlib.dll)でスローされた例外:0x0000005:アクセス違反書き込み位置0x00000014.

返信リスト(回答:1)

1 #
DaveM12

こんにちはPapita
ごめんなさい、コミュニティはあなたの質問の範囲のために単なる消費者フォーラムです(C#開発)C#断面部のMSDN(開発者ネットワーク)でこの質問を郵送してください(下記)
あそこに、C#開発者のホストにアクセスできるようになり、この質問に対する知識のある素早い答えが得られます...
https://social.msdn.microsoft.com/forums/vstudi...