เพิ่มและลบหัวจดหมายในเอกสาร Word


0

บริษัท ของเรามีกระดาษหัวจดหมาย (กระดาษที่พิมพ์ไว้ล่วงหน้าพร้อมโลโก้ของเรา) เมื่อใดก็ตามที่เราส่งอะไรทางไปรษณีย์เราจะพิมพ์ลงบนกระดาษนั้น อย่างไรก็ตามเมื่อเราส่งเอกสารเดียวกันทางอีเมลเราจะแปลงเป็นไฟล์ PDF

ตอนนี้ปัญหาคือ: เมื่อแปลงเอกสาร Word เป็น PDF ควรมีหัวจดหมาย เมื่อพิมพ์เอกสารเดียวกันลงบนกระดาษไม่ควร (หรือจะพิมพ์หัวจดหมายสองครั้ง)

ขณะนี้เรากำลังใช้เทมเพลตเอกสาร Word ที่แตกต่างกันสองแบบ - อันหนึ่งมีหัวจดหมายหนึ่งอันไม่มี ดังนั้นเมื่อใดก็ตามที่เราต้องการเพิ่มหรือลบหัวจดหมายเราต้องสร้างเอกสารใหม่พร้อมกับแม่แบบอื่นและคัดลอกและวางทุกอย่าง ทางออกที่น่ารังเกียจ สิ่งที่ฉันกำลังมองหาคือวิธีง่ายๆในการเปิดและปิดหัวจดหมาย

สิ่งที่ฉันลองมาแล้ว:

  • การสลับแม่แบบ:ดูเหมือนจะไม่มีวิธีที่ง่ายในการสลับแม่แบบสำหรับเอกสารที่มีอยู่
  • การใช้ลายน้ำรูปภาพ:หัวจดหมายของเราไปจนถึงเส้นขอบของหน้ากระดาษ (ไม่มีเครื่องพิมพ์รองรับสิ่งนี้แน่นอน แต่ใช้ได้สำหรับการส่งออกเป็น PDF) เห็นได้ชัดว่าขึ้นอยู่กับเครื่องพิมพ์เริ่มต้นปัจจุบัน Word จะไม่อนุญาตให้ใช้ลายน้ำแบบไร้ขอบแทนการเลื่อนภาพไปรอบ ๆ
  • การใช้ส่วนหัวของหน้า:เมื่อแก้ไขส่วนหัวของหน้าฉันสามารถแทรกรูปภาพในตำแหน่งที่กำหนดเองซึ่งยอดเยี่ยมมาก อย่างไรก็ตามฉันไม่สามารถหาวิธี (สั้น ๆ ของมาโคร) เพื่อเปิด / ปิดใช้งานเฉพาะภาพในส่วนหัว (ข้อความควรอยู่ที่นั่น)

คำตอบ:


1

คุณสามารถลองทดสอบกับข้อความที่มีเงื่อนไขในส่วนหัวโดยยึดตามคุณสมบัติของเอกสารเช่นหมวดหมู่ หากคุณป้อน "PDF" ในหมวดหมู่ส่วนหัวจะถูกพิมพ์หากคุณลบส่วนหัวจะหายไป

ลองตัวอย่างง่ายๆนี้:

{IF {DOCPROPERTY Category}="PDF" "This is the header text..." ""}

ฉันไม่แน่ใจว่าจะแตกชื่อเครื่องพิมพ์ที่ใช้ในระหว่างขั้นตอนการพิมพ์อย่างไร แต่อย่างน้อยนี่อาจทำให้สิ่งต่าง ๆ ง่ายขึ้น


0

ในที่สุดการเป็นนักพัฒนาซอฟต์แวร์ในที่สุดฉันก็ไปแก้ปัญหาการเขียนโปรแกรมและพัฒนา Ribbon แบบกำหนดเองใน C #

ฉันรู้ว่านี่ไม่ใช่คำตอบที่น่าพอใจสำหรับผู้ที่ไม่ใช่นักพัฒนา แต่น่าเสียดายที่ฉันไม่สามารถแนบปลั๊กอินกับข้อความนี้ได้ อย่างไรก็ตามหากคุณมีสิทธิ์เข้าถึงโปรแกรมเมอร์สิ่งนี้ควรเริ่มต้นเขา:

private static void ShowHeaderImages(bool show) {
  foreach (Section section in WordDoc.Sections) {
    foreach (HeaderFooter header in section.Headers) {
      foreach (Shape shape in header.Shapes) {
        bool isGraphic =
          shape.Type == MsoShapeType.msoPicture ||
          shape.Type == MsoShapeType.msoLinkedOLEObject;
        if (isGraphic) {
          shape.Visible = show ? MsoTriState.msoTrue : MsoTriState.msoFalse;
        }
      }
    }
  }
}

โปรดทราบว่าในขณะที่นี่คือรหัส C # มันอาจถูกแปลงเป็นแมโคร VBA เล็กน้อย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.