9

我已经为此寻找答案,但相关的解决方案似乎与'print'解释器有关。

我想知道是否可以从 IDLE 以彩色打印(物理上在纸上)python 代码?

我去了:File > Print Window在IDLE中,它似乎只是打印出黑白版本而没有提示是否打印彩色等。

编辑:

似乎这可能不可用,因此可以选择将代码复制到 SciTE 之类的文本编辑器并从那里打印 - 就像默认的 IDLE 语法突出显示一样。

4

6 回答 6

6

IDLE 无法做到这一点,但您可以通过间接方式做到这一点:使用 LaTeX 以 IDLE 颜色格式化您的脚本。

listings包支持 python 的类似 IDLE 的着色,但它隐藏得很好:您必须知道包含listings手册中提到的“首选项文件”,但没有对其功能的描述。以下几乎最小的示例会将您的脚本myscript.py转换为 IDLE 颜色的彩色 PDF。

\documentclass{article}

\usepackage{listings}
\input{listings-python.prf}  % defines the python-idle-code style
\usepackage{textcomp} % Needed for straight quotes                               

\lstset{
 basicstyle=\normalsize\ttfamily, % size of the fonts for the code               
 language={Python},style={python-idle-code},
 showstringspaces=false,
 tabsize=4,
 upquote=true,   % Requires textcomp                                             
}

\oddsidemargin=-0.5cm
\textwidth=7in  % This just fits 80 characters at 10pt                           

\begin{document}
\lstinputlisting{myscript.py}
\end{document}

您还可以在真实的 LaTeX 文档中包含代码片段。

可用性:您至少需要listings版本 1.5b (2013/08/26)。Texlive 2013 的用户必须从 CTAN 下载它(例如使用命令行 texlive 管理器,tlmgr)。它是 TexLive 2016 的一部分。

不幸的是,CTAN 版本似乎仍然存在问题:首选项文件listings-python.prf位于包的文档文件夹中,而不是tex/latex/listingsTeX 可以找到的位置。您需要手动移动它才能使包含起作用。

于 2013-11-28T22:54:41.727 回答
2

使用名为 IDLE2HTML.py 的 IDLE 扩展(搜索这个)。这允许 IDLE 打印到其样式表中有颜色的 HTML 文件。然后将 HTML 文件保存为 PDF(颜色仍然存在)。

于 2014-10-26T11:52:32.040 回答
2

最简单的方法是使用Notepad++打开“.py”文件,您可以在其中选择和修改您的设置和首选项(任何您想要的 Python 代码主题)以将 Python 文件导出为彩色 PDF 文件(使用 PDF 虚拟打印机) 或直接打印 :-) 。

或者

如果您使用的是VS 代码,则只需安装 ( PrintCode ) 扩展程序并在安装后:

  1. 打开VS Code并转到查看
  2. 单击命令面板
  3. 搜索“打印代码

它将使用您的默认 Internet 浏览器将 python 文件导出为HTML,您可以在那里直接打印它或使用虚拟打印机,将您的 python 文档打印为彩色 PDF。

于 2019-04-20T08:51:26.550 回答
2

一个好的和简单的解决方案是使用IDLE2HTML,一个 IDLE 的扩展。
该工具允许 IDLE 将代码从编辑器窗口(或交互式外壳)保存到 HTML 文件,
颜色包含在 CSS 格式中。在此之后,可以打印文件(根据要求)或其格式化代码与其他程序(如文字处理器)一起使用。
目前下载 Python 文件并查看一些说明的可靠网站是 Python 包索引 (PyPI) - 该页面是https://pypi.python.org/pypi/IDLE2HTMLpip模块,内置于较新的 Python 版本,可以为您安装文件。

此方法的一个有用优势是它从 IDLE获取颜色格式,而不是花时间分析代码和使用存储的颜色(许多其他解决方案都这样做)。这意味着它使用实际的配色方案并适用于不同的 IDLE 主题,例如“IDLE Dark”。这应该会导致使用更少的资源和更短的代码。
此外,当前的扩展(2.0 版)可能适合在保存数据时使用不同的文件格式,因为它的代码非常简单。

关于它如何工作的一些细节:

由于该工具是作为扩展运行的 Python 代码,因此它可以访问 IDLE 提供的特殊变量,其中包含有关编辑器窗口的数据。extend.txtPython 扩展文件idlelib(运行编辑器)描述了这个变量,称为editwin

IDLE 扩展类使用单个参数 `editwin' 实例化,它是一个 EditorWindow 实例。

它还包括一些其他关于扩展 IDLE 的文件,例如“config-main.def”和“config-extensions.def”。官方 Python 文档有更多信息。

安装说明:

将 IDLE2HTML.py 复制到 python 安装的“idlelib”文件夹。
将“config-extensions.txt”的内容附加到您的“config-extensions.def”文件(也在idlelib文件夹中)并重新启动 IDLE。

如何使用:

从“选项”菜单中选择“另存为 HTML”,并在 FileDialog 窗口中指定文件名。HTML 文件会立即创建。

在 Python 3.x 中工作的代码调整:
目前,IDLE2HTML扩展(2.0 版)不能在 Python 3.x 中工作,直到对我在IDLEX Python附带的固定版本中找到的代码进行小幅更改模块。这是一个文件比较,左边是原始文件,右边是固定的 IDLEX 版本。

上述文件比较图像。

说明:如果 Python 版本是 Python 3.x,请使用import tkinter as Tkinter代替import Tkinterimport tkinter.filedialog as tkFileDialog代替import tkFileDialog. 显示的代码使用sys.versionif/else 块中的内置“sys”模块来运行正确的代码。

于 2016-06-18T14:23:14.743 回答
0

我遇到了同样的问题,将 py 文件打开到 Visual Studio Code 中,然后简单地复制 (Ctrl A / Ctrl C) 并将文本 (Ctrl V) 粘贴到 Microsoft 编辑器中,例如 Word 或 RTF,甚至是 Outlook。颜色保持不变,包括打印时。请注意,为了避免在 VS Code 中将夜间模式设置为默认值,请转到 File->Preferences->Color Theme 并选择更适合打印的白天模式。

于 2019-09-19T11:36:08.183 回答
0

我一直用大量代码来做这件事。只需安装 SciTE “https://www.scintilla.org/SciTEDownload.html” 复制并粘贴您的代码并打印。我喜欢拿一些胶带和记号笔把所有的床单都贴在墙上,然后放一些音乐。快乐编码!

于 2020-10-25T22:14:00.357 回答