Can we calculate AES-CBC-PKCS7 ciphertext length based on the length of the plaintext? I am currently using AES256 in CBC mode with PKCS7 Padding to encrypt some data. It seems like the output size is not always a power of two, which was what I expected.

Is it possible to calculate the size in bytes of the output, knowing only the input data?
PKCS7 uses mandatory padding. Even if the length of your data is a multiple of your block size, it will pad.

output_size = input_size + (block_size - (input_size % block_size))