如何从IDLE物理打印彩色的python代码?

问题描述 投票:7回答:4

我已经找到了答案,但相关的解决方案似乎与翻译中的'print'ing有关。

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

我去过IDLE的File > Print Window,它似乎只打印出黑白版本,而不提示是否打印颜色等。

编辑:

看起来这可能不可用所以选项是将代码复制到像SciTE这样的文本编辑器并从那里打印 - 就像默认的IDLE语法突出显示一样。

python python-2.7 printing syntax-highlighting python-idle
4个回答
4
投票

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 manager,tlmgr)。它是TexLive 2016的一部分。

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


2
投票

这是一个更好的答案。使用IDLE扩展名为IDLE2HTML.py(搜索此内容)。这使得IDLE可以打印到HTML文件中,该文件的样式表中有颜色。然后将HTML文件保存为PDF(颜色仍然存在)。


2
投票

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

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

有关其工作原理的一些细节:

由于该工具是作为扩展运行的Python代码,因此它可以访问IDLE提供的特殊变量,该变量包含有关编辑器窗口的数据。 extend.txt Python扩展(运行编辑器)的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版本。

File comparison image described above.

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


0
投票

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

要么

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

  1. 打开VS Code并转到View
  2. 单击Command Palette
  3. 搜索“PrintCode”

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

© www.soinside.com 2019 - 2024. All rights reserved.