diff --git chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
index 54cf4bbb6c1dc..312a603e6c639 100644
--- chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
+++ chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
@@ -25,12 +25,31 @@
 #include "extensions/renderer/guest_view/mime_handler_view/post_message_support.h"
 #endif  // BUILDFLAG(ENABLE_PDF)
 
-ChromePrintRenderFrameHelperDelegate::ChromePrintRenderFrameHelperDelegate() =
-    default;
+namespace {
+
+std::optional<bool> g_next_print_preview_enabled;
+
+} // namespace
+
+ChromePrintRenderFrameHelperDelegate::ChromePrintRenderFrameHelperDelegate(
+    std::optional<bool> print_preview_enabled)
+    : print_preview_enabled_(print_preview_enabled.has_value()
+                                 ? print_preview_enabled
+                                 : g_next_print_preview_enabled) {
+  if (g_next_print_preview_enabled.has_value()) {
+    g_next_print_preview_enabled = std::nullopt;
+  }
+}
 
 ChromePrintRenderFrameHelperDelegate::~ChromePrintRenderFrameHelperDelegate() =
     default;
 
+// static
+void ChromePrintRenderFrameHelperDelegate::SetNextPrintPreviewEnabled(
+    std::optional<bool> enabled) {
+  g_next_print_preview_enabled = enabled;
+}
+
 // Return the PDF object element if `frame` is the out of process PDF extension
 // or its child frame.
 blink::WebElement ChromePrintRenderFrameHelperDelegate::GetPdfElement(
@@ -47,6 +66,10 @@ blink::WebElement ChromePrintRenderFrameHelperDelegate::GetPdfElement(
 }
 
 bool ChromePrintRenderFrameHelperDelegate::IsPrintPreviewEnabled() {
+  if (print_preview_enabled_.has_value()) {
+    return *print_preview_enabled_;
+  }
+
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   return !command_line->HasSwitch(switches::kDisablePrintPreview);
 }
diff --git chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h
index ab12b010c13d9..48850a94ae255 100644
--- chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h
+++ chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h
@@ -5,12 +5,15 @@
 #ifndef CHROME_RENDERER_PRINTING_CHROME_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_
 #define CHROME_RENDERER_PRINTING_CHROME_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_
 
+#include <optional>
+
 #include "components/printing/renderer/print_render_frame_helper.h"
 
 class ChromePrintRenderFrameHelperDelegate
     : public printing::PrintRenderFrameHelper::Delegate {
  public:
-  ChromePrintRenderFrameHelperDelegate();
+  explicit ChromePrintRenderFrameHelperDelegate(
+      std::optional<bool> print_preview_enabled = std::nullopt);
 
   ChromePrintRenderFrameHelperDelegate(
       const ChromePrintRenderFrameHelperDelegate&) = delete;
@@ -19,12 +22,17 @@ class ChromePrintRenderFrameHelperDelegate
 
   ~ChromePrintRenderFrameHelperDelegate() override;
 
+  // Set the value for the next instance of this object that is created.
+  static void SetNextPrintPreviewEnabled(std::optional<bool> enabled);
+
  private:
   // printing::PrintRenderFrameHelper::Delegate:
   blink::WebElement GetPdfElement(blink::WebLocalFrame* frame) override;
   bool IsPrintPreviewEnabled() override;
   bool OverridePrint(blink::WebLocalFrame* frame) override;
   bool ShouldGenerateTaggedPDF() override;
+
+  const std::optional<bool> print_preview_enabled_;
 };
 
 #endif  // CHROME_RENDERER_PRINTING_CHROME_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_