用 Picviewer CE+ PDF 扩展下载完是这样的,直接打印就行了
不过我刚刚发现,浏览器打开图片在未缩放模式下打印直接就是分页的
为什么我不行…会挤在一张A4里
你是说我的 pdf 扩展吗?那是我刚才看见这个帖子现写的。最新版才行,之前不支持长图切割
是不是只要安装pdf 扩展之后,所有的下载就变成了PDF?
所以这个事情,用浏览器直接打印就行了…
看图软件打印有点多此一举了
不影响单图下载,批量下载从 zip 变成 pdf。然后命令菜单里 Picviewer CE+ PDF addon 底下可以即时切换。
我给一个方案,之前网上找的软件
能够做到按固定尺寸分割图片,并支持对图片分界线进行微调。
分割出来的图片文件直接拉进WORD,(我之前用一般分两栏排列)就可以打印了
免费图片分割软件|图片快速分割工具 V1.0 绿色版下载_当下软件园 (downxia.com)
顺便放了一个网盘
链接: https://pan.baidu.com/s/1GH1450b1gUdzDIdayhEecA?pwd=e7a3 提取码: e7a3 复制这段内容后打开百度网盘手机App,操作更方便哦
多走一步,更多可能。
一、将图片转为 PDF。
二、使用 PDF-XChange Viewer 的打印功能。
只想走一步的可以用 PDF-XChange Editor,但是收费的,而且一点都不小而美。
浏览器的分割打印只能用于截屏的长图,如果是大图(如:地图类)就不行了。而且这个软件还可以设置重叠部分。
对长图切割打印来说我觉得你这个是目前最好的方法, 稍微计算一下切割比例, 切好直接拖入faststone–>工具–>通过侧面加载图片就可以横拼图片了. 打印的效果很清晰
下面一段AI写的python代码, 用于将裁减好的图片以2栏或3栏形式横拼. 一些小问题来来回回问了好几遍都没能解决(拖拽图片导入), 还有一个问题是长度不同的图片会显示黑色背景问题, 一开始解决了, 修修改改给改没了,无法回滚到之前的状态, 直接复制ai的答案也没能解决.
2024/06/30 21:41:36更新:python脚本修改为直接读取固定文件夹内图片, 合并完成(保存到固定文件夹)即退出
python脚本:
import os
import tkinter as tk
from PIL import Image, ImageTk
from tkinter import messagebox
class ImageMergerApp:
def __init__(self, root):
self.root = root
self.root.title("Image Merger")
self.image_paths = []
self.selected_layout = tk.StringVar()
self.selected_layout.set("2 Column")
self.create_widgets()
self.load_images_from_folder("C:/Users/Administrator/Desktop/图片分割")
def create_widgets(self):
self.layout_label = tk.Label(self.root, text="Select Layout:")
self.layout_label.pack(pady=5)
layout_options = ["2 Column", "3 Column"]
self.layout_menu = tk.OptionMenu(self.root, self.selected_layout, *layout_options)
self.layout_menu.pack(pady=5)
self.merge_button = tk.Button(self.root, text="Merge Images", command=self.merge_images)
self.merge_button.pack(pady=10)
self.image_frame = tk.Frame(self.root)
self.image_frame.pack(pady=10)
self.canvas = tk.Canvas(self.image_frame)
self.scrollbar = tk.Scrollbar(self.image_frame, orient="vertical", command=self.canvas.yview)
self.scrollbar.pack(side="right", fill="y")
self.canvas.pack(side="left", fill="both", expand=True)
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.image_frame_inner = tk.Frame(self.canvas)
self.canvas.create_window((0, 0), window=self.image_frame_inner, anchor="nw")
self.root.geometry("200x450")
def load_images_from_folder(self, folder_path):
self.image_paths.clear()
try:
image_files = [(os.path.join(folder_path, filename), os.path.getmtime(os.path.join(folder_path, filename)))
for filename in os.listdir(folder_path)
if filename.lower().endswith(('.png', '.jpg', '.jpeg'))]
image_files.sort(key=lambda x: x[1])
self.image_paths = [file[0] for file in image_files]
self.update_image_preview()
except OSError as e:
tk.messagebox.showerror("Error", f"Failed to open folder: {str(e)}")
def update_image_preview(self):
for widget in self.image_frame_inner.winfo_children():
widget.destroy()
for i, img_path in enumerate(self.image_paths):
img = Image.open(img_path)
img.thumbnail((150, 150))
img = ImageTk.PhotoImage(img)
label = tk.Label(self.image_frame_inner, image=img, bg="black")
label.image = img
label.grid(row=i // 2, column=i % 2, padx=5, pady=5)
self.image_frame_inner.update_idletasks()
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
def merge_images(self):
layout = self.selected_layout.get()
if layout == "2 Column":
columns = 2
elif layout == "3 Column":
columns = 3
else:
messagebox.showerror("Error", "Invalid layout selected")
return
merged_images = []
for i in range(0, len(self.image_paths), columns):
images = [Image.open(img_path) for img_path in self.image_paths[i:i + columns]]
widths, heights = zip(*(img.size for img in images))
max_height = max(heights)
total_width = sum(widths)
new_image = Image.new("RGB", (total_width, max_height), color="white")
x_offset = 0
for img in images:
new_image.paste(img, (x_offset, 0))
x_offset += img.width
merged_images.append(new_image)
save_path = r"C:\Users\Administrator\Desktop\merged\\"
if not os.path.exists(save_path):
os.makedirs(save_path)
for idx, img in enumerate(merged_images):
img.save(f"{save_path}merged_{idx + 1}.png")
# messagebox.showinfo("Success", f"{len(merged_images)} images merged successfully!")
self.root.quit()
self.root.destroy()
if __name__ == "__main__":
root = tk.Tk()
app = ImageMergerApp(root)
root.mainloop()
下面ahk脚本用于计算图片分割的高度, 计算完打开图片切割工具, 尽可能将信息填入gui.
ahk脚本:
#NoEnv
#Warn
Gui, Add, Edit, x5 y5 vWidth w50, 图宽
Gui, Add, Text, y5, *
Gui, Add, Edit, y5 w70 vHeight, 图高
Gui, Add, Button, y5 Default , 栏宽70
Gui, Add, Button, y5 , 栏宽105
Gui, Show, h100, 分割图片高度
return
Button栏宽70:
Gui, Submit
Result := Floor(Height / (Height / (Width / 70) / 297))
goto, openpicsplit
Button栏宽105:
Gui, Submit
Result := Floor(Height / (Height / (Width / 105) / 297))
goto, openpicsplit
openpicsplit:
Run, "D:\备份\大图快速分割工具.exe"
Sleep 2500
Send, {Tab 6}
Sleep 500
Send, %Width%
Sleep 500
Send, {Tab}
Sleep 500
Send, %Result%
Send, {Tab}
Send, {text}C:\Users\Administrator\Desktop\图片分割
Sleep 1000
Send, {Tab}
Send, 0
Sleep 500
Send, {Tab}
Send, 0
ExitApp
GuiClose:
ExitApp
其实2栏不用这么麻烦,直接把分割好的文件拉进word或者wps,调成2栏,调整一下页边距什么的就行了,。
分栏的话也可以用浏览器打印大法啊,Pages pre sheet 调整成 2 或者 4 就可以了
有个软件,作者说目前免费。影谷长图打印。
有些看图软件也可以设置的吧
其实『画图』也可以的,点打印,然后在设置里写1页宽,10页长(可以多写,实际打印完就不会再出纸了,但是不用写少了)
下面是借用已有工具, 用脚本连接的方式:
1. 运行"图片切割拼接.ahk"
2. 选定图片文件
3. 按Ctrl Shift 2或 Ctrl Shift 3
4. 手动微调切割位置-完成后点切割
简化操作流程:
我也是你这样想的,直接切割打印太浪费了,如果能设置切割为几份,一张A4纸可以打印好几个长图的,这样感觉是最合适的,因为字也可以看清楚,这样直接切割,只能放大打印,太浪费了。
如果横向不分割,只分割纵向,很长的图,如何切割,并最终实现 A4 尺寸打印? - #16,来自 xiaokonglong 是最方便的。