C#: การแทรกเนื้อหา HTML -› MS Word: รูปภาพและตารางปรับขนาดอัตโนมัติ (เช่น สูญเสียแอตทริบิวต์สไตล์ความกว้างและความสูง)

ฉันใช้ C# เพื่อสร้างรายงานใน MS Word ฉันมีเทมเพลต .docx ที่กำหนดไว้ล่วงหน้า และฉันใช้ช่องจดหมายเวียนซึ่งแอปของฉันอัปเดตแล้ว

ฉันดึงเนื้อหา HTML ส่วนเล็กๆ จากฐานข้อมูลและแทรกลงในจุดที่เหมาะสมในเอกสาร MS Word ดังนี้:

  1. ฉันดึงเนื้อหา HTML

  2. ฉันห่อเนื้อหาด้วยแท็ก:

    <HTML> <TITLE></TITLE> <BODY> ... content ... </BODY> </HTML>

  3. บันทึกเนื้อหา html ลงในไฟล์ชั่วคราว

  4. ใช้เมธอด Word._Application.Selection.InsertFile() เพื่อแทรกไฟล์ HTML

ตัวอย่างโค้ด HTML ที่แปลงแล้ว:

<html>
<title></title>
<body>
    <table border="0" cellpadding="0" cellspacing="0" style="width: 700px; ">
    <tbody>
    <tr>
        <td style="padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; text-align: center; vertical-align: middle; width: 150px; ">
            <img alt="see attached image: screenshot-3.jpg" src="XXXXX/screenshot-3.jpg" style="width: 60px; height: 84px; " />
        </td>
    </tr>
</tbody>
</table>
<br />
</body>
</html>

ระบบข้างต้นใช้งานได้ แต่ฉันพบว่าตารางและรูปภาพนั้น 'ปรับขนาดอัตโนมัติ' โดย MS Word โดยมีรูปภาพที่แสดงผลตามขนาดดั้งเดิมซึ่งต่างจากแอตทริบิวต์ style="width, height" ที่ฝังไว้

HTML ของฉันแสดงผลได้ 100% ในเบราว์เซอร์ แต่ไม่ใช่ใน MS Word

แนวคิดใด ๆ เกี่ยวกับวิธีปรับขนาดของฉันให้เหมาะสมจะได้รับการชื่นชมมากที่สุด

ขอบคุณมาก


person kalenwatermeyer    schedule 09.03.2012    source แหล่งที่มา


คำตอบ (1)


จากประสบการณ์ของฉัน HTML อาจเป็นวิธีที่ง่ายที่สุดในการใส่ Rich Text ลงในเอกสาร Word แต่ก็มีแนวโน้มที่จะจัดรูปแบบผิดและคุณไม่สามารถควบคุมรายละเอียดปลีกย่อยได้

คุณได้ลองใช้แอตทริบิวต์ width และ height สำหรับองค์ประกอบ img แล้วหรือยัง อีกทางเลือกหนึ่งอาจเป็นลองใช้ RTF (ซึ่งเทียบเท่ากับ Word ในด้านฟีเจอร์)

person Joey    schedule 09.03.2012
comment
ขอบคุณ Joey การตั้งค่าแอตทริบิวต์ width และ height จะทำให้ MS Word ปรับขนาดได้อย่างเหมาะสม - person kalenwatermeyer; 11.03.2012