【教学类-41】翻页连环画4.0(双面2份,正反2种图案翻页)表情包

Emoticons,expression sheet of dogs,  cartoon, black and white outline, uncolored,matrix,slapped,dizzy,happy,angry,crying,sad,cute, looking forward to,laughing,disappointed and shy,sleepy,eating,dizzy,love,Pixar style, cute --niji5

表情包、狗狗表情表、卡通、黑白轮廓、未着色、矩阵、拍打、眩晕、快乐、愤怒、哭泣、悲伤、可爱、期待、大笑、失望和害羞、嗜睡、吃东西、头晕、爱、皮克斯风格、可爱——niji5

狗与跳舞人,第1页

【教学类-41】翻页连环画4.0(双面2份,正反2种图案翻页)表情包_第1张图片

狗与跳舞人,第2页【教学类-41】翻页连环画4.0(双面2份,正反2种图案翻页)表情包_第2张图片

WORD准备

【教学类-41】翻页连环画4.0(双面2份,正反2种图案翻页)表情包_第3张图片

代码展示

# -*- coding: utf-8 -*-
'''
连环画书4.0
目的:
1、在制作连环画 一页2份,四面都有图片,2正2反,
2、作者:阿夏
时间:2023年10月2日)

'''


import os
import os.path
import shutil
from PIL import Image


# num=int(input('生成多少份(28人)\n'))
# Number=4

print('----------第1步:提取正面水平图片路径------------')

# 文件名
pathfront=[]
p1=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片正面"
# 过滤:只保留png结尾的图片
imgs1=os.listdir(p1)
for img1 in imgs1:
    if img1.endswith(".png"):
        pathfront.append(p1+'\\'+img1)
# print(pathfront)

pathtime1=[]
for w1 in range(int(len(pathfront)/80)):
    t1=pathfront[w1*80:w1*80+80]
    # for t11 in t1:
    pathtime1.append(t1)
print(pathtime1)
print(len(pathtime1))

print('----------第2步:提取反面倒置图片路径------------')

from PIL import Image
import os.path
import glob
import os
from matplotlib import pyplot as plt

l=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时"
folder = os.path.exists(l) 
if not folder:                   # 判断是否存在文件夹如果不存在则创建为文件夹
    os.makedirs(l)            # makedirs 创建文件时如果路径不存在会创建这个路径
else:
    print("文件夹已存在,无需创建")

dir_path= r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面"
files= os.listdir(dir_path)
for file in files:
    ff=os.path.splitext(file)[0]
    img=Image.open(r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面/"+file)
    img = img.transpose(Image.FLIP_TOP_BOTTOM)
    # 左右是这样的im.transpose(Image.FLIP_LEFT_RIGHT) 选装360°的垂直旋转
    img.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时/"+file)

# 文件名
pathback=[]
p2=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时"
# 过滤:只保留png结尾的图片
imgs2=os.listdir(p2)
for img2 in imgs2:
    if img2.endswith(".png"):
        pathback.append(p2+'\\'+img2)
# print(pathfront)
# 新建文件夹并倒置

pathtime2=[]
for w2 in range(int(len(pathback)/80)):
    t2=pathback[w2*80:w2*80+80]
    # for t12 in t2:
    pathtime2.append(t2)
print(pathtime2)
print(len(pathtime2))
# 2

# # pathtime=[]
# # for a1 in pathtime1:
# #     for b1 in a1:
# #         pathtime.append(b1)
# # for a2 in pathtime2:
# #     for b2 in a2:
# #         pathtime.append(b2)
# # print(pathtime)
# # print(len(pathtime))



# # print('----------第2步:新建一个临时文件夹------------')
# # # 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\零时Word')




import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
import random

import os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

print('-----------第3步 正面图案右侧坐标  正面图案左侧坐标------------')
bg1=[]
for x1 in range(0,5):
    for y1 in range(1,8,2):
        c1='{}{}'.format('%02d'%x1,'%02d'%y1)
        bg1.append(c1)

bg2=[]
for x2 in range(0,5):
    for y2 in range(0,8,2):
        c2='{}{}'.format('%02d'%x2,'%02d'%y2)
        bg2.append(c2)





for nn in range(0,len(pathtime2)):  
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\连环画书.docx')    
    
    path1=[]
    path2=[]
    # for w in range(len(pathtime1)):
    for v in [0,2,1,3]:  
        # 表格1蝴蝶结猫右侧,表格3蝴蝶结猫右侧,表格2黑猫右侧,表格4黑猫右侧,
        u1= pathtime1[nn][v*20:v*20+20]
        path1.append(u1) 
        u2= pathtime2[nn][v*20:v*20+20] 
        path2.append(u2)
    # print(path1) 
    # print(len(path1))
    # print(path2) 
# print(len(path2))
    for z in range(4):                
        table = doc.tables[z]          # 只有一个表格
        # pp=[]
        # qq=[]
        # kk=[]
        for t in range(len(bg1)):   # 02
            pp1=int(bg1[t][0:2]) 
            qq1=int(bg1[t][2:4]) 
            k1=path1[z][t]
            # pp.append(pp1)   
            # qq.append(qq1)  
            # # kk.append(k1) 

            pp2=int(bg2[t][0:2]) 
            qq2=int(bg2[t][2:4]) 
            k2=path2[z][t]
            # pp.append(pp2)  
            # qq.append(qq2)   
            # kk.append(k2)

            # pp=str(pp1)+str(pp2)
            # qq=str(qq1)+str(qq2)
            # kk=k1+k2
            # print(pp,qq,kk)
            # # print(pp,qq,k2) 

                     
            run=doc.tables[z].cell(pp1,qq1).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
            run.add_picture('{}'.format(k1),width=Cm(2.4),height=Cm(2.4))            # 1.5的图片最多6个
            table.cell(pp1,qq1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中  

            run=doc.tables[z].cell(pp2,qq2).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
            run.add_picture('{}'.format(k2),width=Cm(2.4),height=Cm(2.4))            # 1.5的图片最多6个
            table.cell(pp2,qq2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中  

            # # 写入彩色图片
            # for s in range(len(kk)):            
            #     run=doc.tables[z].cell(int(pp[s]),int(qq[s])).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
            #     run.add_picture('{}'.format(kk[s]),width=Cm(2.4),height=Cm(2.4))            # 1.5的图片最多6个
            #     table.cell(int(pp[s]),int(qq[s])).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中     
   
    # 保存docx 和pdf
    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\零时Word\{}.docx'.format('%02d'%nn)) 

    from docx2pdf import convert

    # docx 文件另存为PDF文件
    inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在
    outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word/{}.pdf".format('%02d'%nn)  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile, 'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)
        
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path =  'C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/(打印合集)连环画4.0测试双面(共{}份).pdf".format(nn+1))

file_merger.close()

# # # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word') #递归删除文件夹,即:删除非空文件夹
shutil.rmtree(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时') #递归删除文件夹,即:删除非空文件夹


你可能感兴趣的:(Python,python,sklearn,开发语言)