WinCC Alarm Control Print Font Size: Fixing Oversized Output

David Krause6 min read
SiemensTroubleshootingWinCC
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview

When printing an alarm log via WinCC AlarmControl using ButtonCommand = 1048576 (Print Current View), the printed output renders with the same font size configured on the runtime Alarm Control object. This causes columns to overflow, data to truncate, and landscape layout changes to have no effect on font scaling. The print job Report AlarmControl-CP in Report Designer appears to offer font size properties, but applying them either crashes Report Designer or reverts on next open.

⚠ Affected Versions: WinCC 7.0, 7.0 SP1, 7.0 SP2, 7.2, 7.3. Behavior is consistent across versions — the AlarmControl ActiveX object passes its own font metrics to the GDI print context, overriding Report Designer table font settings.

Root Cause

The WinCC AlarmControl is an ActiveX object. When ButtonCommand = 1048576 is triggered, the control renders itself directly to the printer DC using its own internal font metrics — it does not use the Report Designer table formatting as a style override. The Report Designer print job acts as a container/wrapper for the control's self-rendered output.

ButtonCommand Value Hex Action
1048576 0x100000 Print current view
524288 0x080000 Print preview
2097152 0x200000 Export to CSV

Because the font is injected by the ActiveX control itself, Report Designer's table font property targets the static report table object, not the embedded AlarmControl output. Changing font in the Report Designer layout therefore has no effect on live/archived alarm print output.

Verified Workarounds (Priority Order)

Workaround 1 — Suppress Font Inheritance via Report Designer Connect Property (WinCC 7.0 SP2+)

  1. Open Report Designer and open the Report AlarmControl-CP layout.
  2. Right-click the AlarmControl table object → Properties.
  3. Navigate to the Connect tab.
  4. Double-click Properties of the Table.
  5. In the popup, locate the "Do not print" section.
  6. Check the Font checkbox.
  7. Click OK and save the layout.
Note: This instructs the print engine to ignore the font passed by the ActiveX control. After enabling this, set the desired font directly on the Report Designer table object (not the connect dialog). Verified working in WinCC 7.0 SP2; behavior in earlier SPs is unreliable.

Workaround 2 — Resize the AlarmControl Window to Match Page Dimensions

The AlarmControl scales its printed output proportionally to its window dimensions on screen. If the control occupies a large screen area, the font renders large on paper. Resize the AlarmControl object to match the target print area:

  1. Determine your print page dimensions. For A4 landscape at 96 DPI: 1122 × 794 px; for Letter landscape: 1100 × 850 px.
  2. In the WinCC Graphics Designer, resize the AlarmControl object to approximately match these pixel dimensions.
  3. If the control must remain large for operator use, create a second hidden AlarmControl (visible = false, small size) connected to the same alarm class/filter, and trigger print from that object.
Tip: A hidden AlarmControl at ~600 × 400 px typically produces readable 8–9 pt equivalent output on A4 paper. Adjust empirically per your column count.

Workaround 3 — Reduce Font Size Directly on the AlarmControl Object

If neither workaround above is acceptable, reduce the font size on the AlarmControl itself:

  1. In Graphics Designer, open AlarmControl object properties.
  2. Go to Font tab → reduce font size to 8 pt or 9 pt.
  3. Verify operator readability at the reduced size (use display zoom or test on target resolution monitor).

This is the most direct fix but affects the runtime HMI appearance. Use only if the display resolution and operator workflow permit small text.

Workaround 4 — Script-Based Print via WinCC Report Engine (Advanced)

Use a VBScript button to call the Report Engine directly, bypassing the AlarmControl's print method:

' WinCC VBScript — Trigger Report Engine print job
Dim oPrintJob
Set oPrintJob = HMIRuntime.Reports.OpenJob("Report AlarmControl-CP")
oPrintJob.Print
Set oPrintJob = Nothing

This triggers the Report Designer layout engine and respects all formatting set in the layout, including table font overrides — provided the "Do not print font" flag (Workaround 1) is also set. Without that flag, the font is still overridden by the ActiveX.

Report Designer Font Configuration Reference

Location Property Path Effect on AlarmControl Output Works?
Report Designer Table Object Properties → Font Sets static report table font No effect on ActiveX output
Report Designer Connect Connect → Properties of Table → Font Overrides inherited ActiveX font Yes (SP2+ with "Do not print" checked)
AlarmControl Object (GD) Object Properties → Font Sets runtime + printed font Yes — affects both HMI and print
AlarmLogging Archive Config Font tab in Alarm Logging Archive display only No effect on AlarmControl print

Verification

  1. Apply Workaround 1 or 2 as appropriate.
  2. In WinCC Runtime, trigger the print job using the ButtonCommand = 1048576 button or the VBScript method.
  3. Use Print Preview (ButtonCommand = 524288) first to verify layout without consuming paper.
  4. Confirm all columns (Time, Date, Class, Number, Message Text, Status) are fully visible within page margins.
  5. Check Report Designer log at %WinCC_INSTALL%\Diagnose\ for any rendering errors if crashes persist.
Known Issue — Report Designer Crash on Font Apply: In WinCC 7.0 and 7.0 SP1, directly applying a font in the Connect dialog can cause Report Designer to crash and revert the change. Always apply the change, save, close Report Designer completely, and reopen to verify persistence before testing in Runtime. Apply WinCC 7.0 SP2 or later to resolve the crash behavior.

References

Frequently Asked Questions

Why doesn't changing the font in WinCC Report Designer affect the printed alarm log?

The WinCC AlarmControl is an ActiveX object that renders directly to the printer device context using its own font metrics. Report Designer's table font property targets static report objects, not the self-rendering ActiveX output. Use the "Do not print Font" flag in the Connect → Properties of Table dialog (WinCC 7.0 SP2+) to suppress the ActiveX font override.

What ButtonCommand value prints the current WinCC Alarm Control view?

Set ButtonCommand = 1048576 (hex 0x100000) to trigger Print Current View. Use 524288 (hex 0x080000) for Print Preview to verify layout before printing.

How do I print the alarm log in landscape without the font being too large?

Landscape page orientation alone does not reduce the font — it only widens the printable area. You must either (1) reduce the font size on the AlarmControl object itself, (2) resize the AlarmControl window to a smaller pixel size so it scales proportionally to the page, or (3) use the Report Designer "Do not print Font" option in WinCC 7.0 SP2+ and apply a smaller font to the report table object.

Report Designer crashes when I change the font in the AlarmControl print layout — how do I fix this?

This crash occurs in WinCC 7.0 and 7.0 SP1 when applying font changes via the Connect dialog. Upgrade to WinCC 7.0 SP2 or later to resolve the crash. As a workaround on earlier versions, resize the AlarmControl runtime window to control print output size instead of modifying Report Designer font properties.

Can I print the WinCC alarm log without changing the font visible on the HMI screen?

Yes — create a second hidden AlarmControl object (set Visible = False) at a smaller pixel size (e.g., 600 × 400 px) connected to the same alarm filter/class. Assign the ButtonCommand = 1048576 trigger to this hidden control. Operators see the full-size control; the hidden smaller control drives the print output at a proportionally smaller font size.

Back to blog